수색…


매개 변수

방법 기술
ProvideValue MarkupExtension 클래스에는 재정의되어야하는 메서드가 하나뿐이므로 XAML 파서는이 메서드에서 제공 한 값을 사용하여 태그 확장 결과를 평가합니다.

비고

속성 사용, 속성 요소 사용의 속성 또는 둘 다에서 속성 값을 제공하도록 태그 확장을 구현할 수 있습니다.

특성 값을 제공하는 데 사용되는 경우 태그 확장 시퀀스를 XAML 프로세서와 구별하는 구문은 열기 및 닫기 중괄호 ({및})의 존재입니다. 그런 다음 마크 업 확장 유형이 여는 중괄호 바로 뒤에 오는 문자열 토큰으로 식별됩니다.

속성 요소 구문에 사용되는 경우 마크 업 확장은 속성 요소 값을 제공하는 데 사용되는 다른 요소와 시각적으로 동일합니다. 태그 확장 클래스를 요소로 참조하고 꺾쇠 괄호 (<>)로 묶은 XAML 요소 선언입니다.

자세한 내용은 https://msdn.microsoft.com/en-us/library/ms747254(v=vs.110).aspx를 참조하십시오.

IValueConverter와 함께 사용되는 마크 업 확장

마크 업 확장의 가장 좋은 용도 중 하나는 IValueConverter를보다 쉽게 ​​사용할 수 있도록하는 것입니다. 아래의 예제에서 BoolToVisibilityConverter는 값 변환기이지만 인스턴스 독립적이므로 태그 확장을 사용하여 값 변환기의 일반 해시가 없으면 사용할 수 있습니다. XAML에서 그냥 사용하십시오.

Visibility="{Binding [BoolProperty], Converter={[xmlns]:BoolToVisibilityConverter}}"

항목 가시성을 bool 값으로 설정할 수 있습니다.

public class BoolToVisibilityConverter : MarkupExtension, IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is bool)
                return (bool)value ? Visibility.Visible : Visibility.Collapsed;
            else
                return Visibility.Collapsed;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is Visibility)
            {
                if ((Visibility)value == Visibility.Visible)
                    return true;
                else
                    return false;
            }
            else
                return false;
        }

        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            return this;
        }
    }

XAML 정의 마크 업 확장

XAML에는 미리 정의 된 네 가지 태그 확장이 있습니다.

x:Type 은 명명 된 유형의 Type 객체를 제공합니다. 이 기능은 스타일과 템플릿에서 가장 많이 사용됩니다.

<object property="{x:Type prefix:typeNameValue}" .../>

x:Static 은 정적 값을 생성합니다. 값은 대상 등록 정보의 값 유형이 아닌 값 유형 코드 엔티티에서 가져 오지만 해당 유형에 대해 평가할 수 있습니다.

<object property="{x:Static prefix:typeName.staticMemberName}" .../>

x:Null 은 속성 값으로 null을 지정하며 속성 또는 속성 요소 값으로 사용될 수 있습니다.

<object property="{x:Null}" .../>

x:Array 는 WPF 기본 요소 및 컨트롤 모델에서 제공하는 컬렉션 지원을 의도적으로 사용하지 않는 경우 XAML 구문의 일반 배열을 만들 수 있도록 지원합니다.

<x:Array Type="typeName">
  arrayContents
</x:Array>


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow