如何用MVVM轻绑定和XAML文件组合框

本文关键字:XAML 文件 组合 绑定 何用 MVVM | 更新日期: 2023-09-27 18:18:26

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

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

我真的不知道如何显示合适的文本。

模型Test有两个属性ID和Name。

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

我需要像ListView一样使用DataTemplate吗?

如何用MVVM轻绑定和XAML文件组合框

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" />

您需要从App1.Data.Models.Test中定义您希望通过DisplayMemberPath显示的属性。或者覆盖ToString()

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