我在代碼中動態設置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. WPF將ComboBox選擇綁定到DataContext
- 4. 如何將控件的DataContext綁定到WPF中其內容的DataContext?
- 5. 如何將命令綁定到祖先datacontext? WPF :: MVVM
- 6. 綁定到DataContext的子類
- 7. WPF綁定的DataContext在XAML到視圖模型代碼
- 8. 如何綁定到嵌套在WPF中的DataContext對象深處的列表
- 9. 在WPF中,如何從包含ListBox的DataTemplate中將數據綁定到Window DataContext?
- 10. 未設置DataContext時WPF綁定問題
- 11. 如何正確綁定WPF中的datacontext RelativeSource?
- 12. WPF:如何綁定和更新顯示器的DataContext
- 13. 將DataContext綁定到ValidationRule
- 14. 將UserControl綁定到NULL DataContext
- 15. DataGridComboBoxColumn綁定到DataGrid DataContext
- 16. 將ViewModel綁定到View DataContext
- 17. DataContext綁定
- 18. wpf - 將datacontext綁定到單例類的靜態屬性
- 19. 在DataTemplate中綁定到父DataContext
- 20. 如何將頁面的datacontext用於其他綁定時綁定到WPF依賴項屬性?
- 21. DataContext,DependencyProperties和綁定
- 22. 在WPF中可以綁定到我的DataContext中的屬性的屬性?
- 23. 從TabControl的DataTemplate綁定到主DataContext
- 24. 綁定到DataContext中的項目數
- 25. 綁定到父DataContext的資源
- 26. 綁定到datacontext之外的屬性
- 27. 從usercontrol綁定dependencyproperty到它的datacontext
- 28. 如何綁定到WPF中的DataGrid
- 29. 在XAML綁定的DataContext用的DataContext在代碼中設置
- 30. 綁定使用的DataContext
這樣的轉換器可能看起來如何? – katit 2011-06-10 23:58:58