0

我已将列的显示索引绑定到数据上下文中的整数变量 (DisplayIndex_Name)。

XAML 代码:

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

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

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

问题是当我有多个列时,如果我更改其中 1 列的 displayIndex,则所有其他 displayindexes 都会更新,因为每一列都必须具有唯一值。

这现在意味着 displayindex != 它应该绑定到的整数值。

知道如何将数据上下文中的变量更新为显示索引的确切值吗?

4

2 回答 2

2

您没有设置Mode=TwoWay绑定,因此当您移动列时,它们不会更新后端。我认为添加这将解决问题。

于 2013-05-07T08:54:24.383 回答
0

在你的情况下它只是错误的索引,在我的情况下可能会崩溃。我对此进行了大量调查以找出根本原因并解决问题,只是放在这里以防万一有人真的需要在显示索引中绑定 TwoWay(这是我的情况)。

根本原因:

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

解决方法:

最后一个解决方法存在一些问题,我正在使用 OneTime 和 OneWayToSource 模式进行客户绑定,这将解决这个问题。完成后会在这里更新。

于 2015-08-07T06:56:14.497 回答