私はWPF
DataGridを持っています:
<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();
}
なぜこれが起こるのか理解できません。
(問題はおそらくダイアログ保存を開くことであるように思われますが、それを解決するにはどうすればよいですか?)