将UserControl绑定到NULL DataContext

时间:2011-02-25 23:09:02

标签: wpf user-controls binding null datacontext

我有一个UserControl并将其DataContext绑定到一个对象。我还将UserControl的IsEnabled属性绑定到该对象的布尔属性,例如:

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

如果Items.SelectedItem不为null,则此工作正常。但是,如果它为null(如果Items集合为空,有时会发生这种情况),则不会对IsEnabled绑定进行求值并将其设置为true,这不是所需的行为。

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

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

谢谢!

3 个答案:

答案 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)

请参阅Binding.FallbackValue