我正在使用以下属性绑定到列表框。列表框显示文件并可以执行 Save 方法打开 SaveDialogBox。
我遇到的问题是集合中的每个文件都出现对话框,而不是我从列表框中单击的选定项目文件。下面是代码,我错过了什么吗?
public ObservableCollection<Files> FilesProperty
{
get
{
return mFilesProperty;
}
}
public Files FilesSelectedItem
{
get
{
return mFilesSelectedItem;
}
set
{
mFilesSelectedItem = value;
OnPropertyChanged("FilesSelectedItem");
}
}
这是执行保存的方法。
private void Save(object parameter)
{
SaveFileDialog dlg = new SaveFileDialog();
{
dlg.AddExtension = true;
dlg.DefaultExt = "xlsx";
dlg.Filter = "New Excel(*.xlsx)|*.*";
foreach (var files in FilesProperty)
{
if (dlg.ShowDialog() ?? false)
{
File.WriteAllBytes(dlg.FileName, files.Data);
}
}
}
}
这是列表框的基本代码,还有更多用于 xaml 的代码,但它太长了。
<ListBox Grid.Row="2"
ItemsSource="{Binding FilesProperty}"
SelectedItem="{Binding FilesSelectedItem, Mode=TwoWay}"
BorderThickness="1"/>