0

我有一个WPF数据网格:

<DataGrid SelectedIndex="{Binding SelectedXIndex,Mode=TwoWay}" DataContext="{Binding MyViewModel}" ItemsSource="{Binding XList}" AutoGenerateColumns="False">
...
</DataGrid>

ItemSource绑定到位于我的 ViewModel 中的列表。

 private ObservableCollection<X> _xList= new ObservableCollection<X>();
    public ObservableCollection<X> XList
    {
        get
        {
            return _xList;
        }
        set
        {
            _xList= value;
            NotifyPropertyChanged("XList");
        }
    }

X 类包含 Name(string) 和 Value(int)。

按下时我有一个按钮,它将充满详细信息(名称和值)的列表项保存在文件中。

保存后,与 DataGrid 的绑定在 ItemSource 中不起作用,我有几个与 XList 不同的项目。

这是保存功能:

    public void SaveToFile(string path)
    {
        XList= FilterCommands();//Return the full value commands
        List<X> serlist = new List<X>();

        for (int i = 0; i < XList.Count; ++i)
        {
            if (!string.IsNullOrEmpty(XList[i].Name))
            {
                serlist.Add(XList[i]);
            }
        }
        XmlSerializer serializer = new XmlSerializer(typeof(List<X>));
        TextWriter textWriter = new StreamWriter(path);
        serializer.Serialize(textWriter, serlist);
        textWriter.Close();
    }

我不明白为什么会这样。

(在我看来问题可能是打开对话框保存,但如何解决呢?)

4

1 回答 1

1

看起来 FilterCommands 方法正在替换 ObservableCollection 的内容。

该方法究竟是做什么的?是在改变收藏吗?

于 2013-02-17T20:16:52.337 回答