首页 新闻 搜索 专区 学院

WPF 如何在DataGrid中根据一个单元格的值去禁用掉另一个单元格的button

0
悬赏园豆:20 [已解决问题] 解决于 2013-10-22 09:49

<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

Gavin yin的主页 Gavin yin | 初学一级 | 园豆:184
提问于:2013-10-20 04:38
< >
分享
最佳答案
0

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

收获园豆:20
刀是什么样的刀 | 小虾三级 |园豆:910 | 2013-10-20 12:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册