如何使用MVVM Light绑定和XAML填充ComboBox?

时间:2015-10-20 12:29:04

标签: c# xaml binding combobox mvvm-light

我有一个列表,其中包含我想在ComboBox中显示的项目,但结果是我看不到文本但是这样:

 App1.Data.Models.Test
 App1.Data.Models.Test
 App1.Data.Models.Test

我真的不知道如何显示正确的文字。

模型Test有2个属性ID和名称。

 <ComboBox Grid.Column="1"
           Grid.Row="3"
           Margin="10"
           ItemsSource="{Binding TestList}" />

我是否需要像ListView一样使用DataTemplate?

2 个答案:

答案 0 :(得分:2)

ComboBox使用其项目的ToString()方法来显示它们。

覆盖App1.Data.Models.Test.ToString(),或选择要显示的App1.Data.Models.Test的特定媒体资源,让我们说Name

<ComboBox
       Grid.Column="1"
       Grid.Row="3"
       Margin="10"
       ItemsSource="{Binding TestList}"
       DisplayMemberPath="Name" />

答案 1 :(得分:1)

您需要定义App1.Data.Models.TestDisplayMemberPath显示的属性。ToString()。 或者覆盖<ComboBox Grid.Column="1" Grid.Row="3" Margin="10" DisplayMemberPath = "Name" ItemsSource="{Binding TestList}" />

 var democart= angular.copy($rootScope.cart);
 var cartCopy = democart;