首页 > 解决方案 > 在 Observable Collection 中移动项目将移动项目重置为默认值

问题描述

我有一个包含组合框、文本框和复选框的列表视图。我可以添加多行,每次添加一行时,您都会在列表视图中获得一个包含所有 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;
        }
    }

标签: c#wpf

解决方案


推荐阅读