WPF ListView排序丢失了最后一行中的列数据

时间:2013-10-04 12:38:35

标签: c# wpf listview sorting

我在排序WPF ListView ColHeader时遇到了奇怪的行为! 我有一个binview绑定到数据表。 Cols有细胞模板。

在其中一个单元格模板[salary column]中,我在xaml中有多个绑定。 当这个列表视图加载数据时,一切正常。

我分别更改了每行中1,4,3,5,2等工资列的数值。

即,在第一行中,工资col为1, 第二排,薪水是4,第三排薪水是3,等等。

当我点击工资标题栏进行排序时,列表视图正在排序,但工资文本框中的最后一个输入值[即,在这种情况下为2]消失!!!

ICollectionView myview = CollectionViewSource.GetDefaultView(lv.ItemsSource);

if (myview != null)
{                
   myview.SortDescriptions.Clear();
   SortDescription sd = new SortDescription("Salary", direction);
   myview.SortDescriptions.Add(sd);
   myview.Refresh();
}

当我在添加sort desc后检查myview时,最后一行的Salary值消失了!!它有什么不对吗???

1 个答案:

答案 0 :(得分:0)

我可以根据您的描述推测发生了什么,但显示数据表的xaml会很有用。默认情况下,TextBox的Text属性的绑定在失去焦点之前不会提交值。将绑定的UpdateSourceTrigger更改为PropertyChanged:

Text="{Binding Path=Text, UpdateSourceTrigger=PropertyChanged}"

这将在每次按键时提交值。如果没有看到代码,无法确定这是否是您的问题。

干杯, 埃里克