2013-05-07 575 views
0

我已将列的displayindex绑定到我的datacontext中的整数变量(DisplayIndex_Name)。C#wpf正确绑定datagrid列的DisplayIndex属性的方法

XAML代码:

<DataGridTextColumn Header="Name" DisplayIndex="{Binding Path=DisplayIndex_Name}" /> 

在我的数据网格的列的位置现在等于存储在DisplayIndex_Name值。

(如果我设置为0,这将显示为我的第一列)

问题是,当我有多个列,如果我改变了他们的1的DisplayIndex,所有其他displayindexes获得自更新每列都必须具有唯一的值。

现在,这意味着,的DisplayIndex!=其所应绑定的整数值..

任何想法,我怎么能在我的DataContext更新我的变量到的DisplayIndex的精确值?

+0

基本上我只想让用户决定我的列的显示索引,有什么建议吗? – Enrico 2013-05-07 07:15:23

回答

2

您并未在绑定中设置Mode=TwoWay,因此当您移动列时,它们不会更新后端。我认为补充说明会解决问题。

+0

它确实没有!谢谢 – Enrico 2013-05-07 08:55:26

0

在你的情况下,这只是错误的索引,在我的情况下可能会崩溃。我在这方面做了很多调查,以找出根本原因并解决问题,只是为了防止任何人真的需要在显示索引中使用双向绑定(这是我的情况)。

根源:

当我们设置多个显示器索引数据网格将应用它们一个接一个。每次数据网格应用一个索引时,都需要修改其他索引以确保所有索引一起有效,双向绑定会将此值返回给viewmodel,这将最终改变我们想要的显示顺序,甚至是索引超出范围。

解决方法:

有一些问题的最后解决办法,我工作的一个客户用模式一次性和OneWayToSource结合,这将解决这个问题。完成后会在这里更新。

相关问题