Я пытаюсь связать свойство «второго уровня» моего класса со списком.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?
Заранее благодарим за мой английский.
Благодаря Ian. Я просто пробовал свой путь, прежде чем реализовать этот, но без успеха (хорошо, получил успех, но мне пришлось снова переопределить ToString(). Я не знаю, потеряет ли он себя во время поиска типа предка этого свойства , и в конце концов, я просто следовал примеру Microsoft. Как я уже сказал, работает, но его можно было бы написать лучше и понятнее. Я просто не знаю, каким образом это должно быть ... – Edward