我有一个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();
}
我不明白为什么会这样。
(在我看来问题可能是打开对话框保存,但如何解决呢?)