2010-06-21 89 views
0

我試圖將我的類的「第二級」屬性綁定到組合框。WPF:將嵌套屬性綁定到組合框

我在做什麼?我將一個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,的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}"/> 

只是跟着this link from microsoft綁定。工作,但不知何故,我不喜歡通過重寫ToString方法來「強制」顯示整個集合。我覺得我可以做得更好,沒有被迫覆蓋每一個類的ToString我想稍後顯示,在組合,網格等。

我剛剛在這個論壇,但無法找到一個很好的搜索任何好的線索。有什麼辦法可以實現它,避免ToString的覆蓋?

在此先感謝和抱歉我的英語。

回答

1

DisplayMemberPath的組合框讓你指定的路徑,要從基礎類

+0

謝謝伊恩顯示屬性。在我實現這個之前,我只是嘗試了你的方式,但沒有成功(好吧,取得了成功,但我不得不再次重寫ToString()。 我不知道在搜索該屬性的祖先類型時是否會自己失敗,畢竟,我只是遵循微軟的例子,正如我所說,工作,但它可以寫得更好,更清晰的方式,我只是不知道應該是哪種方式...... – Edward 2010-06-21 19:12:56