ListView中用于编辑表的UWP组合框

ListView中用于编辑表的UWP组合框,listview,combobox,uwp,Listview,Combobox,Uwp,在开发UWP C#应用程序方面,我完全是个新手。然而,出于兴趣,我打算建立一个小项目 目前,我正在努力建立一个基于sqlite数据库的表。我的具体问题是,我想使用组合框编辑表中的一列 为了说明我的问题,我创建了一个小样本来解释我正在努力解决的问题: 我的数据绑定使用自定义ListView,并与预期的ObservableCollection一起工作 示例类和ObservableCollection的设置都在Mainpage.cs中,如下所示: 公共密封部分类主页面:第页 { 公共可观测收集车;

在开发UWP C#应用程序方面,我完全是个新手。然而,出于兴趣,我打算建立一个小项目

目前,我正在努力建立一个基于sqlite数据库的表。我的具体问题是,我想使用组合框编辑表中的一列

为了说明我的问题,我创建了一个小样本来解释我正在努力解决的问题:

我的数据绑定使用自定义ListView,并与预期的ObservableCollection一起工作

示例类和ObservableCollection的设置都在Mainpage.cs中,如下所示:

公共密封部分类主页面:第页
{
公共可观测收集车;
公共主页()
{
this.InitializeComponent();
Cars=新的可观测集合();
添加(新车{Brand=“BMW”,颜色={“red”,“yellow”});
添加(新车{Brand=“Mercedes”,颜色={“blue”,“yellow”});
添加(新车{Brand=“Scoda”,颜色={“green”,“pruple”});
}
已加载私有void MyComboBox_(对象发送方,Windows.UI.Xaml.RoutedEventArgs e)
{
var myComboBox=(组合框)发送方;
myComboBox.ItemsSource=汽车;
}
}
公车
{
公共字符串品牌{get;set;}
公共列表颜色{get;set;}
公共汽车
{
颜色=新列表();
}

}
您的主要问题是组合框的绑定。您需要在XAML中添加以下绑定并删除加载的事件处理程序

<ComboBox
    x:Name="MyComboBox"
    Grid.Column="1"
    ItemsSource="{x:Bind Colour}"
    SelectedItem="{x:Bind CurrentColour, Mode=TwoWay}" >
</ComboBox>

这是因为颜色是字符串的列表,所以它们可以正确显示。如果它是一个复杂的对象,则可以使用DisplayMemberPath访问特定的显示字符串

您在代码中将ComboBox绑定到Cars(错误的对象),然后使用显示路径,但这只会使您得到字符串列表,而不是颜色本身


我不确定这是否正是你想要的。我想您下一步会想在组合框中保存所选颜色,因此您需要充实您的汽车类别,以包括颜色列表和所选颜色。

谢谢。这很有效。你知道如何在xaml中设置selectedindex吗?酷,如果这对你有效,你能接受我的答案吗?你需要另一辆车的属性。然后将ComboBox.SelectedItem绑定到它:SelectedItem=“{x:bind CurrentColour,Mode=TwoWay}”。再次非常有用;)@保罗很高兴这对你也有用。如果这解决了你的问题,你能接受这个答案吗?谢谢。@Paul,如果你不知道如何接受答案,请阅读。接受一个能很好地回答你问题的答案。