【问题标题】:WPF DataGrid Radio Button Binding IssueWPF DataGrid 单选按钮绑定问题
【发布时间】:2016-01-07 18:25:42
【问题描述】:

我遇到了 RadioButton 绑定问题。下面是我的 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“dtMIData”中。然后我暂时添加一个名为“SELECT”的布尔列,并将其分配给数据网格,如下面的代码所示。

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

我正在将这个新列“SELECT”与 RadioButton 控件绑定。我想从多个检索到的记录中只选择一个记录,并希望根据“SELECT”列值在后面的代码中检索选定的记录。即“SELECT”列值为true。但是即使选中了RadioButton,所需的绑定列“SELECT”也不会更新值为true。如何在相关绑定列中反映选中状态?

【问题讨论】:

    标签: wpf


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回复。提到的解决方案是为我制定的。
    猜你喜欢
    • 2014-06-19
    • 2014-02-03
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2011-08-15
    • 1970-01-01
    相关资源
    最近更新 更多