想象一下,您正在为婚礼策划师应用创建UI。您将拥有一个客人列表,并且您希望在屏幕上显示其名称,其组合框包含“将参加”/“可能”/“否”的值。
我尝试过那样的东西....我在视图模型中有一组项目(来宾)。对于每个项目,我想显示一个Label和一个ComboBox。每个ComboBox在下拉列表中具有相同的值(可能的响应)。
我创建了一个包含标签和组合框的ItemTemplate。我将它绑定到我的客人集合,它按预期工作。我正在使用祖先绑定,以便ComboBox的ItemsSource绑定到可能的响应列表。这很有效。
我正在努力的是如何绑定SelectedItem以获取用户选择的值?我想在某种程度上在ViewModel上有一组选定的值,但是我在找到正确的单词来描述它/搜索它时遇到了很多麻烦。
任何人都可以帮助我吗?我是以错误的方式解决这个问题吗?
答案 0 :(得分:1)
您可以为出勤状态创建一个枚举,并为您的Guest类添加Attendance
属性:
public enum Attendance
{
Yes,
No,
Maybe
}
public class Guest
{
...
public Attendance Attendance { get; set; } // raise PropertyChanged event if necessary
}
现在,您可以将ComboBox项的Tag
属性设置为适当的枚举值,并绑定SelectedValue
属性:
<ItemsControl.ItemTemplate>
<DataTemplate>
<ComboBox SelectedValue="{Binding Attendance}" SelectedValuePath="Tag">
<TextBlock Tag="Yes">Will Attend</TextBlock>
<TextBlock Tag="No">Won't Attend</TextBlock>
<TextBlock Tag="Maybe">May Attend</TextBlock>
</ComboBox>
</DataTemplate>
</ItemsControl.ItemTemplate>