2010-07-14 3 views
6

은 내가 PriorityBinding반환 된 값이 Null 인 경우 PriorityBinding을 실패하게하려면 어떻게해야합니까?

<PriorityBinding FallbackValue="Bindings were null"> 
    <Binding Path="Foo" /> 
    <Binding Path="Bar" /> 
</PriorityBinding> 

내가 푸가 null의 경우는 줄을 사용할 수 있도록 그것을하고 싶습니다 있고 모두가 null 인 경우는 FallbackValue를 사용합니다. 그러나 객체 만 예상하기 때문에 null은이 속성에 유효한 값입니다.

값이 null 일 때 PriorityBinding을 다음 바인딩으로 진행시키는 방법이 있습니까? 나는 XAML에서 그것을하는 것을 선호 할 것이지만, 만약 내가 그것을 할 수 없다면 나는 그것을위한 변환기를 만들 것이다.

편집

가 나는

public class NullToDependencyPropertyUnsetConverter 
    : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return value ?? DependencyProperty.UnsetValue; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 
+0

이것 좀보세요 : http://stackoverflow.com/questions/6947728/equiv-to-coalesce-in-xaml-binding –

+0

나는 이런 종류의 일에 대해 궁금해하고있었습니다. 내 객체에는 null이 아닌 속성이 많이 있으므로 PriorityBinding을 사용하려고하면 다음 값 대신 빈 값이 표시됩니다. – Patrick

답변

5

내가 바운드 값이 null의 경우 UnsetValue를 반환하는 valueconverter와 함께 갈 것만을위한 변환기를 작성 끝났다.

PriorityBinding은 다른 유형의 객체간에 데이터 템플릿을 공유하려는 경우에 더 유용합니다.

관련 문제