kat*_*tit 10 c# wpf datacontext binding
我在代码中动态设置datacontext.我想要启用/禁用屏幕上的按钮,具体取决于是否DataContext == null.当我分配DataContext时,我可以在代码中完成它,但如果我可以像那样绑定它会更好:)
Chr*_*Wue 16
DataTrigger当DataContextnull为空时,您应该能够使用按钮样式来禁用按钮.另一个选项是将IsEnabled属性绑定到DataContext并使用值转换器返回falseif是否DataContext为null 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>
Run Code Online (Sandbox Code Playgroud)
带转换器:
转换器:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
并使用它
<UserControl.Resources>
<local:DataContextSetConverter x:Key="dataContextSetConverter"/>
</UserControl.Resources>
...
<Button IsEnabled="{Binding Path=DataContext, RelativeSource={RelativeSource Self}, Converter={StaticResource dataContextSetConverter}}"/>
Run Code Online (Sandbox Code Playgroud)