2010-07-14 89 views
6

我有一個PriorityBinding如果返回的值爲Null,如何使PriorityBinding失敗?

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

我想使它所以如果foo是空它將使用吧,如果都爲null,將使用FallbackValue。但是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 – 2011-08-25 00:19:01

+0

我想知道這種事情。我的對象有很多非空屬性,所以當我嘗試使用PriorityBinding時,我最終得到空白值而不是下一個列表。 – Patrick 2013-02-06 14:33:46

回答

5

我與valueconverter返回UnsetValue如果綁定值爲空去。

如果您想要在不同類型的對象之間共享數據模板,PriorityBindings更有用。