複雑なオブジェクトで 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 オブジェクトを取り戻すにはどうすればよいですか?
一般的ではないことをしている場合は、コーディング スタイルについてもコメントしてください (たとえば、コレクションを定義してバインドする最良の方法はありますか?)。