将组合框绑定到WPF中的datacontext之外的另一个数据集

时间:2011-03-24 10:58:36

标签: c# wpf data-binding c#-4.0

让我解释一下我的挑战。我有一个数据集,其数据表分配给datacontext。其中一个领域是一个类别。所有类别名称都在另一个数据表中(一对多关系)。

我希望组合框能够使用datacontext数据表中正确选择的值显示数据表类别中的所有名称。因此,如果我更改类别,将使用组合框中的selectedValue更新datatable1。

我读了一些关于ObjectDataProvider的东西,但我没有让它工作。我怎样设法让这个工作?

1 个答案:

答案 0 :(得分:2)

像这样使用

<UserControl x:Class="ButtonEffects.UserControl1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="300" Width="300" Name="uc">
    <Grid>
                <ComboBox ItemsSource="{Binding ElementName=uc,Path=Categories}" 
              DisplayMemberPath="CategoryName" SelectedValuePath="Id" 
              SelectedValue="{Binding SelectedCategoryId}"/>
    </Grid>
</UserControl>

类别是代码隐藏中的属性。将从类别表中填充itemsouce,并且您的selectedvalue将在datacontext数据表中更新。希望这有帮助

修改

如果您的datacontext是数据集,那么selectedvalue应该是

SelectedValue="{Binding datatable1/SelectedCategoryId}"