当前位置: 首页 > 编程语言 > C#

WPF依赖属性共享

时间:2023-04-10 19:51:49 C#

WPF依赖属性我很难理解WPF中的依赖属性,可能是因为我正在寻找的用例非常具体而且没有很好的文档记录。我有一个看起来像这样的自定义控件(请忽略所有可怕的代码,它是临时的!):我在我的主窗口中这样调用它:控件内部的代码如下:usingSystem;使用System.Windows;使用System.Windows.Controls;命名空间HydroAccessory.Controls{publicpartialclassFillGraph:UserControl{privatefloatpercentage;publicfloatPercentage{get{回报率;}设置{百分比=值;PercentageTB.Text=字符串。Format("填充百分比:{0}",percentage.ToString()+"%");}}publicFillGraph(){InitializeComponent();我想要做的就是在主窗口中有一个自定义控件调用说:(其中FillPercentage是脚本中您不需要担心的另一件事)。该控件将被扩展,因此它需要保留为自定义控件。我知道我可能需要依赖属性,但在尝试了许多不同的方法之后,我无法弄清楚如何完成这个看似简单的任务。谢谢您的帮助。您的代码中没有依赖属性。这是一个依赖属性:publicpartialclassFillGraph:UserControl{publicFillGraph(){InitializeComponent();}publicfloatPercentage{get{return(float)GetValue(PercentageProperty);}set{SetValue(PercentageProperty,value);}}//使用DependencyProperty作为Percentage的后备存储。这//启用动画、样式、绑定等...publicstaticreadonlyDependencyPropertyPercentageProperty=DependencyProperty。Register("Percentage",typeof(float),typeof(FillGraph),newPropertyMetadata(0.0f));正如AyyappanSubramanian所说,VisualStudio中的propdp片段将有助于创建样板。请注意传递给DependencyProperty.Register()的参数,并确保传递给newPropertyMetadata()的默认值是正确的类型。0.0f是一个浮点数。如果为float属性传递整数0,它将在运行时抛出异常。一般属性publicfloatPercentage是可选的。它供您的代码使用。XAML根本不会触及它(如果您怀疑我在getter和setter中放置了断点)。这就是依赖属性的特殊之处。下面介绍如何在您的用户控件XAML中使用它。请注意绑定的StringFormat参数。注意:如果百分比以0到1而不是0到100的比例表示,请改用p%格式。我们使用p2表示小数点后的两位数。我们省略了%,因为格式字符串提供了它。您问题中的XAML很好,假设视图模型具有FillPercentage属性并正确实现INotifyPropertyChanged。以上就是《C#学习教程:WPF依赖属性共享》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: