跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教大佬们 WPF Binding 问题
未分類
13 1 月 2021

请教大佬们 WPF Binding 问题

请教大佬们 WPF Binding 问题

資深大佬 : iSNN 0

最近在写 WPF,有许多显示状态颜色的按钮,60 个左右,按钮颜色用 Binding 绑了后台的属性,这个属性是没有用字段的,是在 get 里判断 status 状态字段 0,1,2…然后返回 Brushes 。

所以逻辑就是选择了一个选项,然后判断每个按钮状态修改 status,OnPropertyChanged 通知变更 Brush 属性。

我在 brush 的 get 里面断点或者 writeline 都证明确实变更时从新调用了 get,但是画面没有变,然后再调整画面大小,左右上下只要一拉伸或者缩小就像刷新一样,就又显示出来了,此时 get 方法没有再次调用。

推测,其实画面已经 get 到了新的颜色,只是没有渲染上去,调整大小时就从新渲染了画面。

请问各位大佬,有没有好的解决方案呢…

大佬有話說 (6)

  • 資深大佬 : codehz

    你这种不伦不类的绑定是怎么回事。。wpf 怎么可能知道你 brush 和按钮的关系呢

  • 資深大佬 : Moyudawang

    可以先试试给按钮绑定字符串有没有效果,然后再判断是哪里出了问题

  • 主 資深大佬 : iSNN

    @codehz 绑都绑上了,怎么会不知道什么关系…

  • 主 資深大佬 : iSNN

    @Moyudawang 每个按钮上有个表示个数的小气泡,用的 MaterialDesign 的 Badged 。数字确实没了,其实画面上有关这个选择后需要 OnPropertyChanged 的字段都挂了,但是我把 brush 的绑定注射后,其他绑定字段又是正常的,能实时渲染。刚刚最新的结果是,badge 和 brush 单独绑定是正常的,如果绑了 badge 又绑了 brush 就不行了。

  • 資深大佬 : forgottencoast

    你发一个示例项目出来看看。

  • 資深大佬 : slowhand

    找了一下自己以前用过的方法,类似这样。

    public static readonly DependencyProperty TitleBackgroundProperty =
    DependencyProperty.Register(“TitleBackground”, typeof(Brush), typeof(ButtonIcon), new PropertyMetadata(Brushes.Black));
    /// <summary>
    /// 标题背景
    /// </summary>
    public Brush TitleBackground
    {
    get { return (Brush)GetValue(TitleBackgroundProperty); }
    set { SetValue(TitleBackgroundProperty, value); }
    }

    <Border Grid.Row=”1″ Background=”{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path= TitleBackground}”/>

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具