2010-06-21 90 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