Привязка UserControl к пустому DataContext - PullRequest
1 голос
/ 26 февраля 2011

У меня есть UserControl и я связываю его DataContext с объектом. Я также связываю свойство IsEnabled UserControl с логическим свойством этого объекта, например:

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

Это прекрасно работает при условии Items.SelectedItem не является нулевым. Однако, если он равен нулю (что иногда может случиться, если коллекция Items пуста), привязка IsEnabled не оценивается и устанавливается в значение true, что не является желательным поведением.

Я пытался использовать MultiBinding, но безуспешно, потому что я не знаю, возможно ли привязать к DataContext. Я также пытался использовать DataTrigger, но снова безуспешно.

Кто-нибудь, пожалуйста, направит меня в правильном направлении относительно того, как мне следует это делать.

Спасибо!

Ответы [ 3 ]

2 голосов
/ 26 февраля 2011

Попробуйте:

<my:MyUserControl 
  DataContext="{Binding Items.SelectedItem}" IsEnabled="{BindingPath=IsEditable,
  FallbackValue=False,TargetNullValue=False}"/>
0 голосов
/ 26 февраля 2011
0 голосов
/ 26 февраля 2011

Вы пробовали FallbackValue = False?

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