管理组合框和复杂对象

时间:2013-03-07 13:06:21

标签: c# wpf combobox

我想弄清楚如何处理复杂对象的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对象?

如果我正在做一些不常见的事情(例如,这是定义和绑定集合的最佳方式吗?),还请评论编码风格。

1 个答案:

答案 0 :(得分:2)

要取回原始对象:

this.c1.SelectedItem;