我想弄清楚如何处理复杂对象的Combobox。
我有以下两个班级:
BackupVersion.cs
public class BackupVersion
{
public string Name { get; set; }
public BackupVersion() { }
public BackupVersion(string name)
{
Name = name;
}
}
SubsystemVersions.cs
public class SubsystemVersions : ObservableCollection<BackupVersion>
{
public SubsystemVersions()
{
Add(new BackupVersion("amit"));
Add(new BackupVersion("aaa"));
Add(new BackupVersion("ofir"));
}
}
我还必须关注XAML窗口:
<Grid>
<StackPanel>
<StackPanel.Resources>
<local:SubsystemVersions x:Key="Backups"/>
</StackPanel.Resources>
<ComboBox Name="c1"
ItemsSource="{StaticResource Backups}"
Text="mmm"
DisplayMemberPath="Name"
SelectedValuePath="Name"
IsEditable="true"
IsReadOnly="true"/>
<TextBlock Text="{Binding ElementName=comboBox1, Path=SelectedItem}"/>
</StackPanel>
</Grid>
这样,在后面的代码中,我可以使用:
在组合框中获取所选字符串this.c1.SelectedValue.ToString()
我的问题是,如何取回原始对象,即BackupVersion对象?
如果我正在做一些不常见的事情(例如,这是定义和绑定集合的最佳方式吗?),还请评论编码风格。
答案 0 :(得分:2)
要取回原始对象:
this.c1.SelectedItem;