C# wpf如何绑定到DataContext存在?
我在代码中动态设置datacontext。我希望根据C# wpf如何绑定到DataContext存在?,c#,wpf,binding,datacontext,C#,Wpf,Binding,Datacontext,我在代码中动态设置datacontext。我希望根据DataContext==null与否启用/禁用屏幕上的按钮。当我分配DataContext时,我可以在代码中这样做,但是如果我可以这样绑定会更好:)当DataContext为空时,您应该能够在按钮样式上使用DataTrigger来禁用按钮。另一个选项是将IsEnabled属性绑定到DataContext,如果DataContext为null,则使用值转换器返回false,否则返回true 带触发器: <Button> <
DataContext==null
与否启用/禁用屏幕上的按钮。当我分配DataContext时,我可以在代码中这样做,但是如果我可以这样绑定会更好:)当DataContext
为空时,您应该能够在按钮样式上使用DataTrigger
来禁用按钮。另一个选项是将IsEnabled
属性绑定到DataContext
,如果DataContext
为null,则使用值转换器返回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>
并使用它
<UserControl.Resources>
<local:DataContextSetConverter x:Key="dataContextSetConverter"/>
</UserControl.Resources>
...
<Button IsEnabled="{Binding Path=DataContext, RelativeSource={RelativeSource Self}, Converter={StaticResource dataContextSetConverter}}"/>
...
这应该可以做到:
这种转换器的外观如何?
<UserControl.Resources>
<local:DataContextSetConverter x:Key="dataContextSetConverter"/>
</UserControl.Resources>
...
<Button IsEnabled="{Binding Path=DataContext, RelativeSource={RelativeSource Self}, Converter={StaticResource dataContextSetConverter}}"/>