我已将我的列的displayindex绑定到我的datacontext中的整数变量(DisplayIndex_Name)。
XAML代码:
<DataGridTextColumn Header="Name" DisplayIndex="{Binding Path=DisplayIndex_Name}" />
我的数据网格中的列位置现在等于存储在DisplayIndex_Name中的值。
(如果我将其设置为0,这将显示为我的第一列)
问题是当我有多个列时,如果我更改其中1个的displayIndex,则所有其他displayindex都会更新,因为每个列都必须具有唯一值。
现在这意味着displayindex!=应该绑定的整数值..
知道如何将我的datacontext中的变量更新为displayindex的确切值吗?
答案 0 :(得分:2)
您未在绑定中设置Mode=TwoWay
,因此当您移动列时,他们不会更新后端。我认为增加这将解决问题。
答案 1 :(得分:0)
在你的情况下它只是错误的索引,在我的情况下可能会崩溃。我做了很多调查,找出了根本原因并解决了问题,只是放在这里,万一有人真的需要在显示索引中使用TwoWay绑定(这是我的情况)。
根本原因:
当我们设置几个显示索引数据时,网格将逐个应用它们。每次数据网格应用一个索引时,都需要修改其他索引以确保所有索引一起有效,并且双向绑定会将此值返回给viewmodel,最终会改变我们想要的显示顺序,甚至让索引超出范围。
解决方法:
最后的解决方法存在一些问题,我正在使用模式OneTime和OneWayToSource进行客户绑定,这将解决这个问题。完成后会在这里更新。