我在代碼中動態設置datacontext。我希望屏幕上的按鈕可以啓用/禁用,具體取決於是否DataContext == null
。我能做到這一點的代碼時,我分配DataContext的,但它會更好,如果我可以綁定像:)wpf如何綁定到DataContext的存在?
8
A
回答
13
您應該能夠使用DataTrigger
上的按鈕樣式,以禁用按鈕時DataContext
爲空。另一個選項是將IsEnabled
屬性綁定到DataContext
,如果DataContext
爲空,則使用值轉換器返回false
,否則使用true
。
隨着觸發:
<Button>
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=DataContext, RelativeSource={RelativeSource Self}}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="false"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
隨着轉換器:
轉換器:
public class DataContextSetConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value != null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
而且使用它
<UserControl.Resources>
<local:DataContextSetConverter x:Key="dataContextSetConverter"/>
</UserControl.Resources>
...
<Button IsEnabled="{Binding Path=DataContext, RelativeSource={RelativeSource Self}, Converter={StaticResource dataContextSetConverter}}"/>
4
這應做到:
<Button Content="ButtonName">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=DataContext}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
相關問題
- 1. WPF綁定:綁定到DataContext的父代
- 2. WPF DataContext的網格綁定
- 3. 綁定到DataContext的父母與WPF
- 4. WPF DataContext綁定不發生
- 5. WPF綁定到DataContext與類和子類
- 6. WPF將ComboBox選擇綁定到DataContext
- 7. 如何將控件的DataContext綁定到WPF中其內容的DataContext?
- 8. WPF在DataGrid中與DataContext綁定
- 9. 如何將命令綁定到祖先datacontext? WPF :: MVVM
- 10. wpf中的MouseBinding手勢不綁定到DataContext wpf
- 11. 綁定SelectedItem更正WPF中的DataContext
- 12. WPF/XAML綁定:與真正的DataContext
- 13. 如何將wpf與來自不同類的特定datacontext綁定?
- 14. 綁定到主的datacontext,不
- 15. 綁定到單獨的DataContext
- 16. 綁定到DataContext的子類
- 17. WPF綁定的DataContext在XAML到視圖模型代碼
- 18. 如何使用PRISM在WPF中導航並綁定DataContext
- 19. 如何綁定到嵌套在WPF中的DataContext對象深處的列表
- 20. 在WPF上綁定錯誤(對DataContext進行綁定)
- 21. 在WPF中,如何從包含ListBox的DataTemplate中將數據綁定到Window DataContext?
- 22. 未設置DataContext時WPF綁定問題
- 23. WPF - DataContext綁定規則改變?
- 24. WPF:只能直接綁定到List,如果直接設置DataContext
- 25. WPF:如何綁定和更新顯示器的DataContext
- 26. 如何正確綁定WPF中的datacontext RelativeSource?
- 27. 如何在WPF中指定datacontext?
- 28. 從資源綁定到datacontext
- 29. 將DataContext綁定到ValidationRule
- 30. 無法綁定到DataContext
這樣的轉換器可能看起來如何? – katit 2011-06-10 23:58:58