2011-02-25 81 views
1

我有一个UserControl并将其DataContext绑定到一个对象。我也该用户控件的IsEnabled属性绑定到该对象例如布尔属性:将UserControl绑定到NULL DataContext

<my:MyUserControl DataContext="{Binding Items.SelectedItem}" IsEnabled="{Binding Path=IsEditable}"/> 

能正常工作提供Items.SelectedItem不为空。但是,如果它为空(如果Items集合为空,有时会发生这种情况),则IsEnabled绑定不会被评估并设置为true,这不是所需的行为。

我试过使用MultiBinding但没有成功,因为我不知道是否可以绑定到DataContext。我也试过使用DataTrigger,但又没有成功。

会有人指出我正确的方向,我应该这样做的正确方向。

谢谢!

回答

2

尝试:

<my:MyUserControl 
    DataContext="{Binding Items.SelectedItem}" IsEnabled="{BindingPath=IsEditable, 
    FallbackValue=False,TargetNullValue=False}"/> 
+1

太棒了!谢谢你和其他所有推荐FallbackValue的人,那就是诀窍。非常简单! – EBots 2011-02-25 23:29:46

0

您是否尝试过FallbackValue =假?

<my:MyUserControl DataContext="{Binding Items.SelectedItem}" IsEnabled="{Binding Path=IsEditable,FallbackValue=False}"/> 
相关问题