在WPF中对gridview进行分组时,UI未更新

时间:2015-03-18 07:08:38

标签: c# wpf gridview telerik grouping

动态网格的Xaml

<telerik:RadGridView Name="RadgridHoover"
                                 CanUserDeleteRows="True"
                                 CanUserInsertRows="True"
                                 ShowColumnHeaders="True"
                                 ShowGroupPanel="{Binding IsShowGroupPanel, Mode=TwoWay}"
                                 AlternateRowBackground="Transparent"
                                 AlternationCount="2"
                                 AutoGenerateColumns="False" 
                                 SelectionMode="Multiple"
                                 IsReadOnly="True"  
                                 IsFilteringAllowed="True"
                                 EditTriggers="CurrentCellClick"
                                 SelectionUnit="FullRow"
                                 EnableColumnVirtualization="False"
                                 EnableRowVirtualization="True"
                                 RowIndicatorVisibility="Collapsed"
                                 GridLinesVisibility="Horizontal"
                                 behaviors:GridColumnsBindingBehavior.Columns="{Binding Columns, Mode=TwoWay}" 
                                 ItemsSource="{Binding MembersTable, Mode=TwoWay}"
                                 SelectedItem="{Binding SelectedItem}"
                                 DataLoadMode="Asynchronous"
                                 >
        </telerik:RadGridView>

在网格上对数据进行分组时,展开标题组并选择一条记录来编辑此选定记录。 之后,我更新了视图模型中所选记录的网格数据行:

public void UpdateRow(int index, object data)
    {
        if (data != null)
        {
            var row = MembersTable.Rows[index];
            for (int i = 0; i < data.GetType().GetProperties().Count(); i++)
            {
                PropertyInfo pinfo = data.GetType().GetProperties()[i];
                if (!ListPropertiesName.Contains(pinfo.Name))
                {
                    row[pinfo.Name] = pinfo.GetValue(data, null);
                }
            }
            MembersTable.Rows[index] = row;
        }
    }

此选定行未更新,只是当我滚动网格时,此选定行将更新。 如果没有分组行,一切都没问题。

请帮我这个案子。
非常感谢。

1 个答案:

答案 0 :(得分:1)

过去2年来,Telerik家伙不建议使用RadGridView DataLoadMode="Asynchronous"。看起来他们自己已经破坏了新版本中的功能。

如果您可以将DataLoadMode更改为Asynchronous以外的其他内容,则问题可能会得到解决。

结帐http://www.telerik.com/forums/dataloadmode-asynchronous-is-not-recommended