如何将ListBox绑定到xaml中视图模型的成员?

时间:2013-08-23 12:33:50

标签: wpf mvvm wpf-controls

我刚开始使用wpf / vmmv。我已经看到了将集合绑定到列表框的示例。示例:在xaml中,在代码隐藏(例如Page)“DataContext = collection ..”。

我的视图模型具有的属性多于仅需要绑定到视图的单个集合。因此,我想将视图模型设置为视图的DataContext,然后在xaml中将视图模型的集合绑定到ListBox。假设我的视图模型设置为DataContext并且它有一个名为'Customers'的属性,那么将属性绑定到xaml中的ListBox的正确方法是什么? 我试过了,但它不起作用。

感谢。

2 个答案:

答案 0 :(得分:2)

你的意思是'你如何将一个集合绑定到'ListBox'?你会这样做:

<ListBox ItemsSource="{Binding Customers}" />

或者这个:

<ListBox ItemsSource="{Binding Path=Customers}" />

如果要绑定Customer类的每个实例的内部值,您可以执行以下操作:

<ListBox ItemsSource="{Binding Customers}" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Name}" />
            <TextBlock Text="{Binding Age}" />
            <TextBlock Text="{Binding EyeColour}" />
        </DataTemplate>
    </ListBox.ItemTemplate>        
</ListBox>

答案 1 :(得分:0)

我想你要显示属性“Customers”,你要做的是定义ListBox的ItemTemplate,在ItemTemplate中定义DataTemplate,并将Customers绑定到控件,如下所示:

<ListBox ItemsSource="{Binding}" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=Customers}"/>
            ......something else you want display
        </DataTemplate>
    </ListBox.ItemTemplate>

</ListBox>