如何在视图模式下将gridcontrol中的单元格绑定到属性

时间:2015-03-29 22:18:22

标签: c# wpf mvvm devexpress

<dxg:GridControl x:Name="m_grid" SelectionMode="Row" AutoGenerateColumns="AddNew" ItemsSource="{Binding Path=MyDT,Mode=TwoWay}">
    <dxg:GridControl.Columns>
        <dxg:GridColumn x:Name="col_A" AllowEditing="False" FieldName="A" />
        <dxg:GridColumn x:Name="col_B" AllowEditing="False" FieldName="B" />
        <dxg:GridColumn x:Name="col_C" AllowEditing="False" FieldName="C" />
        <dxg:GridColumn x:Name="col_D" AllowEditing="False" FieldName="D" />
        <dxg:GridColumn x:Name="col_E" AllowEditing="True" FieldName="E" />
    </dxg:GridControl.Columns>
</dxg:GridControl>

我在使用MVVM设计battern开发的wpf应用程序中有一个Grid控件。我的GridControl绑定到我的视图模型“MyDT”中的DataTable。现在“MyDT”中的一列是bool类型,因此GridControl将其转换为复选框。这是我GridControl中唯一可编辑的列,剩下的列是不可编辑的,我在xaml中确定了。我需要做的是通过绑定到我的viewmodel中的属性,在GridControl中的任何行中勾选/取消选中复选框时触发事件。 xaml将如何改变?

2 个答案:

答案 0 :(得分:0)

属性已绑定到您的复选框,即dt

中的属性

如果你想故意处理检查事件..添加一个checkBoxColumn或模板列而不是Grid Column ..

您可以访问已检查事件或相关命令的方式。

答案 1 :(得分:0)

假设您的ICommand

中有一个名为CheckBoxCommand的{​​{1}}
ViewModel

请注意,command参数实际上是您的Model,因此在ViewModel中您可以使用如下命令:

<dxg:GridColumn>
    <dxg:GridColumn.CellTemplate>
        <DataTemplate>
            <dxe:CheckEdit 
                Command="{Binding Path=View.DataContext.CheckBoxCommand}" 
                CommandParameter="{Binding RowData.Row}"/>
        </DataTemplate>
    </dxg:GridColumn.CellTemplate>
</dxg:GridColumn>