WPF:如何访问嵌套的usercontrol中的observablecollection?

Lecloneur

在我的应用程序中,我使用了两个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'属性上设置'Binding'。只能在DependencyObject的DependencyProperty上设置“绑定”。

如果嵌套在UserControl1中,则如何在运行时访问和填充UserControl2的observablecollection?

马达多夫

这是因为您的财产需要正确声明为 DependencyProperty

依赖项属性和WPF属性系统通过提供支持属性的类型来扩展属性功能,作为使用私有字段支持属性的标准模式的替代实现。此类型的名称是DependencyProperty。定义WPF属性系统的另一个重要类型是DependencyObject。DependencyObject定义了可以注册并拥有依赖项属性的基类。

请遵循此https://msdn.microsoft.com/library/ms753358(v=vs.100).aspx或依赖项属性概述https://msdn.microsoft.com/pl-pl/library/ms752914(v= vs.100).aspx

摘自上述文章的示例:

public static readonly DependencyProperty IsSpinningProperty = 
    DependencyProperty.Register(
    "IsSpinning", typeof(Boolean),


...


    );
public bool IsSpinning
{
    get { return (bool)GetValue(IsSpinningProperty); }
    set { SetValue(IsSpinningProperty, value); }
}

让我们尝试将其设置为您的代码:

public static readonly DependencyProperty VideoTransformsNamesProperty = 
DependencyProperty.Register("VideoTransformsNames", typeof(ObservableCollection<string>), typeof(UserControl1));

public string VideoTransformsNames
{
    get
    {
        return this.GetValue(VideoTransformsNamesProperty) as ObservableCollection<string>;
    }
    set
    {
        this.SetValue(VideoTransformsNamesProperty, value);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在WPF中访问嵌套属性?

来自分类Dev

如何访问WPF派生的UserControl中的成员控件

来自分类Dev

WPF中的嵌套ObservableCollection数据绑定

来自分类Dev

如何从ViewModel访问ObservableCollection中的数据?

来自分类Dev

WPF如何从自定义UserControl代码访问同级

来自分类Dev

从WPF应用程序中的代码访问UserControl

来自分类Dev

WPF:数据绑定与在UserControl构造函数中作为参数传递的ObservableCollection

来自分类Dev

如何从DataTemplate访问ObservableCollection

来自分类Dev

在 ViewModel 中访问 UserControl

来自分类Dev

如何将UserControl中的嵌套控件完全暴露给外部?

来自分类Dev

如何在WPF中的UserControl中运行BackgroundWorker?

来自分类Dev

如何在WPF中的UserControl中运行BackgroundWorker?

来自分类Dev

如何动态更改wpf MVVM灯中usercontrol中存在的按钮(单击)上的userControl

来自分类Dev

如何动态更改wpf MVVM light中usercontrol中存在的按钮(单击)上的userControl

来自分类Dev

WPF绑定:如何在UserControl XAML中设置绑定源

来自分类Dev

如何在WPF中禁用UserControl的大小调整

来自分类Dev

如何根据UserControl更改WPF中的高度窗口?

来自分类Dev

如何在UserControl中创建/ WPF依赖项属性?

来自分类Dev

WPF绑定:如何在UserControl XAML中设置绑定源

来自分类Dev

如何在WPF中绑定和刷新UserControl绑定?

来自分类Dev

如何在 wpf UserControl 中参数化绑定?

来自分类Dev

如何在C#中访问usercontrol内部控件的数据

来自分类Dev

WPF:从不同的UserControls访问ObservableCollection

来自分类Dev

如何在Aurelia中访问嵌套模型?

来自分类Dev

如何访问Postgresql 9.4中的嵌套JSON?

来自分类Dev

如何访问嵌套指令中的作用域?

来自分类Dev

如何访问嵌套在结构中的结构

来自分类Dev

如何访问哈希中的嵌套键

来自分类Dev

如何访问嵌套字典中的特定键?

Related 相关文章

  1. 1

    如何在WPF中访问嵌套属性?

  2. 2

    如何访问WPF派生的UserControl中的成员控件

  3. 3

    WPF中的嵌套ObservableCollection数据绑定

  4. 4

    如何从ViewModel访问ObservableCollection中的数据?

  5. 5

    WPF如何从自定义UserControl代码访问同级

  6. 6

    从WPF应用程序中的代码访问UserControl

  7. 7

    WPF:数据绑定与在UserControl构造函数中作为参数传递的ObservableCollection

  8. 8

    如何从DataTemplate访问ObservableCollection

  9. 9

    在 ViewModel 中访问 UserControl

  10. 10

    如何将UserControl中的嵌套控件完全暴露给外部?

  11. 11

    如何在WPF中的UserControl中运行BackgroundWorker?

  12. 12

    如何在WPF中的UserControl中运行BackgroundWorker?

  13. 13

    如何动态更改wpf MVVM灯中usercontrol中存在的按钮(单击)上的userControl

  14. 14

    如何动态更改wpf MVVM light中usercontrol中存在的按钮(单击)上的userControl

  15. 15

    WPF绑定:如何在UserControl XAML中设置绑定源

  16. 16

    如何在WPF中禁用UserControl的大小调整

  17. 17

    如何根据UserControl更改WPF中的高度窗口?

  18. 18

    如何在UserControl中创建/ WPF依赖项属性?

  19. 19

    WPF绑定:如何在UserControl XAML中设置绑定源

  20. 20

    如何在WPF中绑定和刷新UserControl绑定?

  21. 21

    如何在 wpf UserControl 中参数化绑定?

  22. 22

    如何在C#中访问usercontrol内部控件的数据

  23. 23

    WPF:从不同的UserControls访问ObservableCollection

  24. 24

    如何在Aurelia中访问嵌套模型?

  25. 25

    如何访问Postgresql 9.4中的嵌套JSON?

  26. 26

    如何访问嵌套指令中的作用域?

  27. 27

    如何访问嵌套在结构中的结构

  28. 28

    如何访问哈希中的嵌套键

  29. 29

    如何访问嵌套字典中的特定键?

热门标签

归档