如何在UserControl中使用绑定的XAML属性?

马可

我有我自己的 UserControl

 <local:MyUserControl MyProperty="{Binding myString}"/>                                      

而且我对此有约束力myString现在我想在我的电脑中使用它UserControl我已经DependencyProperty在我的定义UserControl

    public string MyProperty
    {
        get { return (string)GetValue(MyPropertyProperty); }
        set
        {
            Debug.WriteLine(value);//writes nothing, null
            SetValue(MyPropertyProperty, value);
        }
    }
    public static readonly DependencyProperty MyPropertyProperty =
      DependencyProperty.Register("MyProperty", typeof(string), typeof(MyUserControl), new PropertyMetadata(null));

我究竟做错了什么?我想用这个字符串做一些事情。但是它始终为空。

周杰伦

Debug.WriteLine(value);不是因为价值是什么都不写null不能保证运行依赖项属性的getter和setter,而在使用时{Binding},不会调用属性的setter。您可以在设置器中添加一个断点进行测试。

请注意“自定义依赖项属性”中的以下注意事项

在除特殊情况外的所有情况下,包装器实现都应仅执行GetValue和SetValue操作。否则,通过XAML设置属性与通过代码设置属性时,您将获得不同的行为。为了提高效率,XAML解析器在设置依赖项属性时会绕过包装器。只要有可能,它将使用依赖项属性的注册表。

您可以在原始调用中添加一个更改了属性的处理程序,而无需在属性的设置程序中做出反应,并且可以DependencyProperty.Register在此处理程序中对新值进行操作。例如:

public string MyProperty
{
    get { return (string)GetValue(MyPropertyProperty); }
    set
    {
        SetValue(MyPropertyProperty, value);
    }
}

public static readonly DependencyProperty MyPropertyProperty =
  DependencyProperty.Register("MyProperty", typeof(string), typeof(MyUserControl), new PropertyMetadata(null, OnPropertyChanged));

private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    if ((string)e.NewValue != (string)e.OldValue)
    {
        Debug.WriteLine(e.NewValue);
    }
}

如果你想使用绑定串在你的UserControl,你可以使用MyPropertyUserControl例如:

在您的UserControl

<UserControl Name="root" ...>
    <StackPanel>
        <TextBlock Text="{Binding MyProperty, ElementName=root}" />
    </StackPanel>
</UserControl> 

然后,当您使用时<local:MyUserControl MyProperty="{Binding myString}"/>UserControl将显示的值myString

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在UserControl中使用绑定的XAML属性?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何在XAML中绑定ObservableCollection的属性

来自分类Dev

在XAML中将动作绑定到UserControl的属性

来自分类Dev

如何在UserControl中绑定集合依赖项属性

来自分类Dev

如何在UserControl中绑定集合依赖项属性

来自分类Dev

如何在UserControl中使用ContentPresenter

来自分类Dev

如何在绑定中使用绑定

来自分类Dev

如何在 C# 中使用 WPF 绑定 Xaml 中的动态值

来自分类Dev

如何在Xamarin形式的XAML中绑定类属性

来自分类Dev

如何在XAML中绑定Tabitem的isselected属性

来自分类Dev

如何在Xamarin形式的XAML中绑定类属性

来自分类Dev

如何在XAML中使用数据模板

来自分类Dev

如何在XAML中使用Phone的全角?

来自分类Dev

XAML使用@绑定到属性

来自分类Dev

如何在WPF XAML中使用值转换器的特定属性

来自分类Dev

如何在绑定中使用switch语句?

来自分类Dev

如何在Dialog中使用数据绑定?

来自分类Dev

如何在ProgressBar中使用数据绑定?

来自分类Dev

如何在WPF中使用DateTimePicker绑定

来自分类Dev

如何在元素属性中使用一次绑定或一次角度

来自分类Dev

如何在Vuetify组件中使用Vue v模型绑定以及计算的属性和Vuex?

来自分类Dev

如何在YII中使用CGridView绑定数组时访问属性

来自分类Dev

如何在Polymer中使用纸张输入来绑定对象的子属性

来自分类Dev

如何在XAML中使默认属性不同于Content?

来自分类Dev

如何在UserControl中使用抽象类

来自分类Dev

如何在ASP.NET中使用参数呈现UserControl

来自分类Dev

如何设置控件属性(在DataTemplate和UserControl内部)的绑定以使用ItemSource的给定属性?

Related 相关文章

  1. 1

    如何在UserControl中使用绑定的XAML属性?

  2. 2

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

  3. 3

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

  4. 4

    如何在XAML中绑定ObservableCollection的属性

  5. 5

    在XAML中将动作绑定到UserControl的属性

  6. 6

    如何在UserControl中绑定集合依赖项属性

  7. 7

    如何在UserControl中绑定集合依赖项属性

  8. 8

    如何在UserControl中使用ContentPresenter

  9. 9

    如何在绑定中使用绑定

  10. 10

    如何在 C# 中使用 WPF 绑定 Xaml 中的动态值

  11. 11

    如何在Xamarin形式的XAML中绑定类属性

  12. 12

    如何在XAML中绑定Tabitem的isselected属性

  13. 13

    如何在Xamarin形式的XAML中绑定类属性

  14. 14

    如何在XAML中使用数据模板

  15. 15

    如何在XAML中使用Phone的全角?

  16. 16

    XAML使用@绑定到属性

  17. 17

    如何在WPF XAML中使用值转换器的特定属性

  18. 18

    如何在绑定中使用switch语句?

  19. 19

    如何在Dialog中使用数据绑定?

  20. 20

    如何在ProgressBar中使用数据绑定?

  21. 21

    如何在WPF中使用DateTimePicker绑定

  22. 22

    如何在元素属性中使用一次绑定或一次角度

  23. 23

    如何在Vuetify组件中使用Vue v模型绑定以及计算的属性和Vuex?

  24. 24

    如何在YII中使用CGridView绑定数组时访问属性

  25. 25

    如何在Polymer中使用纸张输入来绑定对象的子属性

  26. 26

    如何在XAML中使默认属性不同于Content?

  27. 27

    如何在UserControl中使用抽象类

  28. 28

    如何在ASP.NET中使用参数呈现UserControl

  29. 29

    如何设置控件属性(在DataTemplate和UserControl内部)的绑定以使用ItemSource的给定属性?

热门标签

归档