2010-06-21 3 views
0

Я пытаюсь связать свойство «второго уровня» моего класса со списком.WPF: привязка вложенных свойств к combobox

Что я делаю? Я назначаю ObservableCollection как datacontext сетки, в которой хранятся все мои текстовые поля и одно поле со списком.

Иерархия может быть описана как

public class ListaLogradouro : ObservableCollection<Logradouro> 
{ 

} 

public class Logradouro 
{ 
    public int CodLogradouro { get; set; } 
    public string Cep { get; set; } 
    public string Estado { get; set; } 
    public string Cidade { get; set; } 
    public ListaBairro Bairros { get; set; } 
    public string Lograd { get; set; } 
    public string Localizacao { get; set; } 
    public string Complemento { get; set; } 
    public string Numero { get; set; } 

}

, как вы можете видеть, свойство "Bairros" является еще одним ObservableCollection, Байру на этот раз.

я пытался связать с помощью

<ComboBox Background="DarkGray" Height="23" HorizontalAlignment="Left" IsEditable="True" IsTextSearchEnabled="True" Margin="519,17,0,0" Name="cmbBairro" VerticalAlignment="Top" Width="202" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Path=CurrentItem.Bairros}"/> 

только после this link from microsoft. Работал, но, как-то, мне не хочется «заставлять» всю коллекцию отображать, переопределяя метод ToString. Я чувствую, что могу сделать это лучше, не будучи вынужденным переопределять ToString каждого отдельного класса, который я хотел бы отобразить позже, в комбо, сетке и т. Д.

Я просто дал прекрасный поиск в этом форуме, но не смог найти любая хорошая подсказка. Можно ли каким-либо образом реализовать его, избегая переопределения ToString?

Заранее благодарим за мой английский.

ответ

1

DisplayMemberPath на выпадающий список позволяет указать путь к собственности вы хотите отобразить от базового класса

+0

Благодаря Ian. Я просто пробовал свой путь, прежде чем реализовать этот, но без успеха (хорошо, получил успех, но мне пришлось снова переопределить ToString(). Я не знаю, потеряет ли он себя во время поиска типа предка этого свойства , и в конце концов, я просто следовал примеру Microsoft. Как я уже сказал, работает, но его можно было бы написать лучше и понятнее. Я просто не знаю, каким образом это должно быть ... – Edward

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