【发布时间】:2016-02-19 06:03:45
【问题描述】:
在我的应用程序中,我使用了两个 usercontrol:UserControl1 是主要的,在其中,我使用了 UserControl2 六次。
UserControl2 有几个组合框,我想从最终应用程序中动态填充它们。首先,我尝试将数据绑定到其中一个。
UserControl2 中的组合框如下所示:
<ComboBox x:Name="VidTransform" Template="{DynamicResource BaseComboBoxStyle}" ItemContainerStyle="{DynamicResource BaseComboBoxItemStyle}" Grid.Row="1" ItemsSource="{Binding Path=DataContext.VidTransformsNames,ElementName=Ch_Parameters, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedValue="{Binding Path=SelectedTransform,ElementName=Ch_Parameters, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
目前我只能使用这个 ObservableCollection 手动填充它(所有字符串都正确显示):
private ObservableCollection<string> _VidTransformsNames = new ObservableCollection<string>(new[] { "test0", "test1", "test2", "test3", "test4", "test5" });
public ObservableCollection<string> VidTransformsNames
{
get { return _VidTransformsNames; }
set { _VidTransformsNames = value; }
}
在 UserControl1(其中包含 UserControl2)中,我尝试创建另一个 ObservableCollection 并在运行时在我的最终应用程序中动态填充它。
这里是:
private ObservableCollection<string> _VideoTransformsNames = new ObservableCollection<string>(new[] { "Test0", "Test1", "Test2", "Test3", "Test4", "Test5" });
public ObservableCollection<string> VideoTransformsNames
{
get { return _VideoTransformsNames; }
set { _VideoTransformsNames = value; }
}
然后绑定:
<local:UserControl1 VidTransformsNames="{Binding Path=VideoTransformsNames, ElementName=cmix, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
我是初学者,但在这里我肯定错了,因为我得到了这个错误:
无法在“UserControl1”类型的“VidTransformsNames”属性上设置“绑定”。 “绑定”只能在 DependencyObject 的 DependencyProperty 上设置。
如果 UserControl2 嵌套在 UserControl1 中,我如何在运行时访问和填充 Observablecollection?
【问题讨论】:
标签: c# wpf user-controls observablecollection