WPF: привязка вложенных свойств к списку - PullRequest
0 голосов
/ 21 июня 2010

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

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

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

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 Bairro на этот раз.

Я пытался связать, используя

<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}"/>

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

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

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

1 Ответ

1 голос
/ 21 июня 2010

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

...