我有两个devexpress网格列,每个列都有一个单选按钮。
在后面的代码中,当我为绑定到单选按钮的属性设置一个值时,将采用绑定。但是,当我在视图中更改选定的单选按钮时,选定的不会触发该属性。
我想念什么?
<dxg:GridColumn Binding="{Binding IsOrder}"
Header="Order"
Visible="{Binding IsVisible}"
Width="60">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<RadioButton IsChecked="{Binding Path=Value, Mode=TwoWay}"
GroupName="{Binding RowData.Row.Number}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
IsEnabled="{Binding
Path=View.DataContext.StatusNotHandled}"/>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
<dxg:GridColumn Binding="{Binding IsNotOrder}"
Header="Not order"
Visible="{Binding IsVisible}"
Width="60">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<RadioButton IsChecked="{Binding Path=Value, Mode=TwoWay}"
GroupName="{Binding RowData.Row.Number}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
IsEnabled="{Binding
Path=View.DataContext.StatusNotHandled}"/>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
答案 0 :(得分:0)
问题的原因很可能是您试图将非DX控件用作GridColumn的编辑的事实,但DevExpress明确建议不要这样做。例如,尝试用DX-CheckEdit替换RadioButton。
我的经验总结:
答案 1 :(得分:0)
将IsChecked
的绑定更改为RowData.Row.IsOrder
,这可能会解决您的选择问题。您可以阅读有关在RowData.Row
或Value
here上使用Data
的更多信息。
另一方面,如@Sancho Panza所说,在处理CellTemplate时,最好始终坚持使用BaseEdit的后代。
这是在CellTemplate中使用BaseEdit后代的优点之一:
对于DevExpress数据编辑器(BaseEdit类的后代),可以将编辑器的Name属性设置为PART_Editor。在这种情况下,GridControl会自动调整其外观并将编辑器与ColumnBase.FieldName或ColumnBase.Binding属性指定的源字段进行同步。
您可以对名为PART_Editor的编辑器使用任何绑定。在这种情况下,将禁用GridControl获取/设置编辑器值的逻辑。
使用BaseEdit后代或WPF RadioButton的最终决定权由您决定,但我还建议您坚持使用BaseEdit。