在Observable Collection中移动项目将移动的项目重置为默认值

时间:2019-02-05 14:54:18

标签: c# wpf

我有一个包含组合框,文本框和复选框的Listview。我可以添加多行,并且每次添加一行时,您都会在列表视图中获得包含所有这5个项目的新行。我在每个组合框的开头都有一个默认值,以提示用户从绑定的下拉列表中选择一个值。问题是当我尝试对行进行重新排序时,移动事件会将所有值重置为其默认值,清除文本框并取消选中该复选框。

public ObservableCollection<RemovePunctuationRules> PunctuationRules
    {
        get
        {
            return _punctuationRules ?? (_punctuationRules = new ObservableCollection<RemovePunctuationRules>());
        }
        set
        {
            _punctuationRules = value;
        }
    }
private void MenuItemMoveUp_OnClick(object sender, RoutedEventArgs e)
    {
        var selectedIndex = ListView.SelectedIndex;

        if (ListView.SelectedIndex > 0)
        {
            var itemToMoveUp = PunctuationRules[selectedIndex];
            PunctuationRules.RemoveAt(selectedIndex);
            PunctuationRules.Insert(selectedIndex - 1, itemToMoveUp);
            ListView.SelectedIndex = selectedIndex - 1;
        }
    }

0 个答案:

没有答案