我有一个WPF DataGrid。其中有一列包含编辑按钮,所以如何启用或禁用datagrid progrmaticaly的某些按钮,例如
<DataGrid AutoGenerateColumns="True" Height="80" Margin="2,-4,8,0" Name="grdQHDRShowAll" VerticalAlignment="Top" ItemsSource="{Binding}" IsReadOnly="True" SelectionChanged="grdQHDRShowAll_SelectionChanged">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="Qhdr_CreateOrder_Click" CommandParameter="{Binding Path=QuoteNo}" >Create Order</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
上面的代码有一个带按钮的列,所以我想知道如何禁用行中的某些按钮取决于其他列数据,如第二列的true和false值,如果第二列第一行有数据,则第一列第一行按钮应该是启用手段取决于任何列其他列如何启用/禁用datagrid按钮?
答案 0 :(得分:1)
如果您使用MVVM模式,您可以将Button的IsEnabled属性绑定到VM的布尔属性,或者使用转换器将其转换为布尔类型:
<Button IsEnabled="{Binding Path=BoolProp}"/>
如果没有,您可以使用elementbinding将其绑定到元素:
<Button IsEnabled="{Binding ElementName=CellName, Path=BoolProp}"/>
答案 1 :(得分:0)
<Button Content="Approve" VerticalAlignment="Center" Height="23" Width="90" FontWeight="Bold" Command="{Binding ApprovedCommand}" Margin="5,0,0,0" IsEnabled="{Binding IsEnabled,Mode=TwoWay}"/>
在MVVM中,您创建一个属性,并在条件
上使IsEnabled为true或false