Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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
.net 基于不同列值禁用DataGrid中的按钮_.net_Wpf_Xaml_Datagrid_Triggers - Fatal编程技术网

.net 基于不同列值禁用DataGrid中的按钮

.net 基于不同列值禁用DataGrid中的按钮,.net,wpf,xaml,datagrid,triggers,.net,Wpf,Xaml,Datagrid,Triggers,我有以下代码: <DataGridTextColumn IsReadOnly="True" Header="StringLock" Binding="{Binding StringLock}"> <DataGridTextColumn.ElementStyle> <Style TargetType="{x:Type TextBlock}">

我有以下代码:

    <DataGridTextColumn IsReadOnly="True" Header="StringLock" Binding="{Binding StringLock}">
                <DataGridTextColumn.ElementStyle>
                    <Style TargetType="{x:Type TextBlock}">
                        <Style.Triggers>
                            <Trigger Property="Text" Value="False">
                                <Setter Property="Background" Value="LightGray"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </DataGridTextColumn.ElementStyle>
            </DataGridTextColumn>
            <DataGridTemplateColumn Header="CanPressButton">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button>Lock module string</Button>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

锁模串
如果StringLock列背景属性包含的文本值为False,则该属性的颜色为浅灰色

如果StringLock列中的文本值为False,我想禁用CanPressButton列中的按钮


如何执行此操作?

您可以使用完整的
数据上下文(即行项目)来触发:

<Button.Style>
     <Style TargetType="Button">
         <Style.Triggers>
             <DataTrigger Binding="{Binding StringLock}" Value="False">
                 <Setter Property="IsEnabled" Value="False"/>
             </DataTrigger>
         </Style.Triggers>
     </Style>
</Button.Style>

您可以使用完整的
数据上下文(即行项目)触发:

<Button.Style>
     <Style TargetType="Button">
         <Style.Triggers>
             <DataTrigger Binding="{Binding StringLock}" Value="False">
                 <Setter Property="IsEnabled" Value="False"/>
             </DataTrigger>
         </Style.Triggers>
     </Style>
</Button.Style>


需要一些帮助。我应该读什么书来学习WPF中的MVVM?我正在研究WPF,但使用代码隐藏编码。@NikhilAgrawal:我不推荐关于编程的书籍。还有一些关于如何学习MVVM的问题。回答得很好!非常好用,而且非常干净需要一点帮助。我应该读什么书来学习WPF中的MVVM?我正在研究WPF,但使用代码隐藏编码。@NikhilAgrawal:我不推荐关于编程的书籍。还有一些关于如何学习MVVM的问题。回答得很好!非常好用,而且非常干净