WPF DataGrid单选按钮绑定问题

时间:2016-01-07 10:01:46

标签: wpf

我有RadioButton绑定问题.Below是我的xaml代码。

<Grid Style="{DynamicResource MainFrameGrid1}">
<Grid Name="grdPCM">
<DataGrid AutoGenerateColumns="False" Height="407" HorizontalAlignment="Left" Margin="18,102,0,0" Name="dgMI" VerticalAlignment="Top" Width="781"
                      CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeColumns="True" CanUserSortColumns="False" SelectionMode="Single" 
                      SelectionUnit="Cell" EnableColumnVirtualization="True">
                <DataGrid.Columns>
                    <DataGridTemplateColumn>
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <RadioButton Name="rbM" GroupName="CMGrp" IsChecked="{Binding Path=SELECT, Mode=TwoWay}" />
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
        </DataGrid.Columns>
</DataGrid>
</Grid>
</Grid>

在代码背后,我这样做。 我从数据库中获取数据并将其存储在DataTable&#34; dtMIData&#34;然后我暂时添加一个名为&#34; SELECT&#34;的布尔列。并在后面的代码中将其分配给数据网格,如下所示。

DataColumn dcRB = new DataColumn("SELECT");
dcRB.DataType = Type.GetType("System.Boolean");
dcRB.DefaultValue = false;
dtMIData.Columns.Add(dcRB);
dtMIData.AcceptChanges();
dgMI.ItemsSource = dtMIData.AsDataView();

我正在绑定这个新专栏&#34; SELECT&#34;使用RadioButton控件。我想从多个检索到的记录中只选择一条记录,并希望根据&#34; SELECT&#34;在后面的代码中检索所选记录。 column value.i.e。&#34; SELECT&#34;列值为true。但即使选中RadioButton,也需要绑定列&#34; SELECT&#34;没有使用值true更新。如何反映相关绑定列中的已检查状态?

1 个答案:

答案 0 :(得分:1)

DataGrid中,在您结束对行的编辑之前,绑定不会更新。尝试将UpdateSourceTrigger=PropertyChanged添加到RadioButton的绑定表达式中,以立即更新绑定:

<RadioButton Name="rbM" GroupName="CMGrp" IsChecked="{Binding Path=SELECT, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />