【发布时间】:2016-12-10 06:44:46
【问题描述】:
我有一个带有 datagridComboBoxColumn 的数据网格。数据网格的项目源是一个名为 Products 的自定义类,它有一个名为 Installer 的属性(也是一个名为 Contact 的自定义类)。
我想将 datagridComboBoxColumn itemsSource 绑定到所有联系人,并将组合框的选定值绑定到安装程序。这不起作用,有人可以帮我吗?提前致谢
不胜感激。我看过其他类似的帖子(例如 this one 或 this one ),但情况并不完全相同。
我的 xaml 代码:
<DataGrid x:Name="productsList" AutoGenerateColumns="False" IsReadOnly="True" CanUserResizeRows="False"
CanUserResizeColumns="True" ColumnWidth="*" GridLinesVisibility="None">
<DataGrid.Columns>
<DataGridTextColumn Header="Ref"
Binding="{Binding Ref}"
/>
<DataGridTextColumn Header="Product"
Binding="{Binding Product}"
/>
<DataGridComboBoxColumn Header="Installer" SelectedItemBinding="{Binding Installer, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding Contacts}"/>
</DataGrid.Columns>
</DataGrid>
我的代码隐藏:
public partial class CatalogPage : Page
{
ObservableCollection<CatalogProduct> mProductList = new ObservableCollection<CatalogProduct>();
public ObservableCollection<Contact> Contacts
{
get
{
return Parent.mContactsPage.GetContacts();
}
}
private LocalConfigurationPage Parent { get; set; }
public CatalogPage(LocalConfigurationPage localConfigurationPage)
{
InitializeComponent();
Parent = localConfigurationPage;
productsList.ItemsSource = mProductList;
}
}
这是 CatalogProduct 类:
public class CatalogProduct
{
public string Ref { get; set; }
public string Product { get; set; }
public Contact Installer { get; set; }
}
【问题讨论】:
-
也应用 updatesourcetrigger。
-
对不起@AnjumSKhan,你能说得更详细一点吗?我应该在哪里应用这个?作为 DataGrid 的属性?
-
... 到您的选定项绑定中的组合框列
-
谢谢@AnjumSKhan。我做到了(见我的帖子更新)但没有任何改变。在数据网格中,它甚至没有出现组合框。
-
您的代码中的安装程序在哪里?