<DataGrid AutoGenerateColumns="False" Height="195" Name="dataGrid1" Width="496">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" x:Name="id" Width="*" Binding="{Binding ID}" >
</DataGridTextColumn>
<DataGridTextColumn Header="Name" Width="*" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Age" Width="*" />
<DataGridTemplateColumn Header=" Action" Width="*" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<Button Content="Delete" />
<Button Content="Edit"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
例如上面的例子,通过判断Name是不是等于xxxxx而是所在行的Delete按钮disable
WPF建议你用MVVM模式。
Name的值从ViewModel对象读取。
按钮的disable状态也从同一个ViewModel中读取。
不过用不用MVVM,解决这个问题都是用Binding来实现。
1、你需要写一个从 string转换为bool值的转换器。http://msdn.microsoft.com/zh-cn/library/system.windows.data.ivalueconverter.ASPX
2、不用mvvm的话,binding需要用到ElementName属性
http://msdn.microsoft.com/zh-cn/library/system.windows.data.binding.elementname(v=vs.90).aspx