我有一个UserControl并将其DataContext绑定到一个对象。我还将UserControl的IsEnabled属性绑定到该对象的布尔属性,例如:
<my:MyUserControl DataContext="{Binding Items.SelectedItem}" IsEnabled="{Binding Path=IsEditable}"/>
如果Items.SelectedItem不为null,则此工作正常。但是,如果它为null(如果Items集合为空,有时会发生这种情况),则不会对IsEnabled绑定进行求值并将其设置为true,这不是所需的行为。
我尝试过使用MultiBinding但没有成功,因为我不知道是否可以绑定到DataContext。我也尝试过使用DataTrigger,但又没有成功。
有人会指出我正确的方向,我应该这样做。
谢谢!
答案 0 :(得分:2)
尝试:
<my:MyUserControl
DataContext="{Binding Items.SelectedItem}" IsEnabled="{BindingPath=IsEditable,
FallbackValue=False,TargetNullValue=False}"/>
答案 1 :(得分:0)
您是否尝试过FallbackValue = False?
<my:MyUserControl DataContext="{Binding Items.SelectedItem}" IsEnabled="{Binding Path=IsEditable,FallbackValue=False}"/>
答案 2 :(得分:0)