3

複雑なオブジェクトで Combobox を処理する方法を理解しようとしています。

次の2つのクラスがあります。

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 オブジェクトを取り戻すにはどうすればよいですか?

一般的ではないことをしている場合は、コーディング スタイルについてもコメントしてください (たとえば、コレクションを定義してバインドする最良の方法はありますか?)。

4

1 に答える 1

2

元のオブジェクトに戻すには:

this.c1.SelectedItem;
于 2013-03-07T13:07:43.320 に答える