yinyuessh

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

自定义控件Binding依赖属性失败

自定义控件Binding依赖属性失败

场景

编写一个自定义控件,控件中定义一个依赖属性向外暴露允许调用方进行绑定,在控件UI中包含了一个TextBlock控件,TextBlock控件的Text属性绑定到自定义控件的依赖属性上。

实现功能

调用方定义的自定义控件依赖属性绑定源发生改变,控件UI中的TextBlock控件的Text属性值也发生改变。

代码

  • Xaml
<TextBlock Text="{Binding TotalCount}" />
  • C#
public int TotalCount
{
    get { return (int)GetValue(TotalCountProperty); }
    set { SetValue(TotalCountProperty, value); }
}

public static readonly DependencyProperty TotalCountProperty =
    DependencyProperty.Register("TotalCount", typeof(int), typeof(PagingControl), new FrameworkPropertyMetadata(15, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, TotalCountChangedCallback));

问题

控件UI中的TextBlock控件的Text属性值没有发生改变。

原因

控件UI中的TextBlock控件的Text属性值没有发生改变,因为TextBlock控件的Text属性值没有绑定到自定义控件的依赖属性上。你并没有给它设置DataContext,导致TextProperty这个依赖属性并没有找到源

解决方案

在自定义控件中,将TextBlock控件或其容器控件的DataContext设置为自定义控件的实例。

    <UserControl x:Name="pagingControl">
    <TextBlock DataContext="{Binding ElementName=pagingControl}" Text="{Binding TotalCount}" />
    </UserControl>

posted on   音乐随生活  阅读(46)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示