hhy6711
2020-01-12 11:19
采纳率: 50%
浏览 605

wpf 绑定自动更新问题

有一个类,有三个属性:目标数,完成数,完成率。其中完成率=完成数/目标数。已经全部设置为依赖属性,三个属性绑定到3个不同的TextBox。
问题:在UI中任意修改完成数或目标数,绑定完成率的TextBox自动更新,如何在后台类代码中实现?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 王青国 2020-01-31 00:31
    已采纳

    定义依赖属性的时候可以定义值更改时的处理方法,DependencyProperty Register(string name, Type propertyType, Type ownerType, PropertyMetadata typeMetadata);PropertyMetadata使用UIPropertyMetadata(object defaultValue, PropertyChangedCallback propertyChangedCallback);

    public static DependencyProperty ItemsProperty= DependencyProperty.Register("Items", typeof(int), typeof(MyClass), new UIPropertyMetadata(0, OnItemsChanged));
    public int Items
    {
    get
    {
    return (int)GetValue(ItemsProperty);
    }
    set
    {
    SetValue(ItemsProperty, value);
    }
    }
    private static void OnItemsChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
    {
    MyClass myClass = o as MyClass;
    int newItemsValue = (int)e.NewValue ;
    ......
    }

    点赞 打赏 评论
  • z467057213c 2020-01-17 15:22

    继承IPropertyChanged接口,然后再目标数,完成数后台的set中通知完成率发生变化

    点赞 打赏 评论
  • hhy6711 2020-01-30 21:57

    谢谢,我也是通过IPropertyChanged接口实现的,问题是我想用依赖属性。

    点赞 打赏 评论

相关推荐 更多相似问题