Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# wpf如何绑定到DataContext存在?_C#_Wpf_Binding_Datacontext - Fatal编程技术网

C# wpf如何绑定到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。我希望根据
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}}"/>