【发布时间】:2018-09-03 19:37:42
【问题描述】:
组合框绑定有问题;
我有一个像这样的 Observable Collection;
这是我的组合框的样子:
<ComboBox ItemsSource="{Binding settingsViewModel.sFTPs}"
DisplayMemberPath="Folder"
SelectedValuePath="Folder"
SelectedValue="{Binding settingsViewModel.sFTPs[0].Folder}"
Grid.Column="0" Grid.Row="4"
md:HintAssist.IsFloating="True"
md:HintAssist.Hint="Save Directory"
md:HintAssist.FloatingScale="1.5"
Margin="5"
/>
它可以很好地返回项目列表,但是当我尝试保存它时会这样做;
[SFTP Connection]
Host=
Port=
UserName=
Password=
Type=SFTP
SavePath=Folder1
这是我的保存方法:
private void ExecuteSaveCommand(object param)
{
IniFile iniFile = new IniFile();
iniFile.Load(@"Configuration.ini");
foreach (var itemCollection in sFTPs)
{
iniFile.Sections[0].Keys[0].Value = itemCollection.Address;
iniFile.Sections[0].Keys[1].Value = itemCollection.Port;
iniFile.Sections[0].Keys[2].Value = itemCollection.UserName;
iniFile.Sections[0].Keys[3].Value = itemCollection.Password;
iniFile.Sections[0].Keys[4].Value = "SFTP";
iniFile.Sections[0].Keys[5].Value = itemCollection.Folder;
}
iniFile.Save(@"Configuration.ini");
}
【问题讨论】:
-
{Binding settingsViewModel.sFTPs}要求 ComboBox 的当前 DataContext 中有一个公共的settingsViewModel属性。 -
确实有一个公共的 SettingsViewModel,只要我点击保存,它就会获取最后一个 ObservableCollection 对象并保存它,无论我选择什么组合框项目。
-
还有人有什么想法吗?
-
您是否有意将 SelectedValue 绑定到 sFTP 中第一个对象的 Folder 属性?
标签: c# wpf combobox binding observablecollection