2013-03-07 2 views
3

Я пытаюсь выяснить, как обрабатывать Combobox со сложными объектами.Управление 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?

Просьба также прокомментировать стиль кодирования, если я делаю то, что не является общим (например, в том, что лучший способ определить и связать коллекцию?)

ответ

2

Чтобы вернуть исходный объект:

this.c1.SelectedItem; 
+1

'** Смущенный **' ;-) – amitfr

+0

Вам не обязательно быть :) –

Смежные вопросы