dependency-properties相关内容
我很难找出依赖项属性的充分理由。为什么System.Controls.TextBox的“文本”属性是依赖项属性而不是常规属性?作为依赖项属性有什么好处? 我要完成的一件事是在UserControl中添加一个ValidationRules属性,该属性将包含其他验证规则。像这里:
..
我刚刚意识到我一直在强制绑定/依赖属性,但并没有真正从根本上理解这个概念。 这里是依赖属性: 公共字符串问题 { get {return(string)GetValue(ProblemProperty); } set {SetValue(ProblemProperty,value); } } 公共静态只读DependencyProperty ProblemPropert
..
即使是最基本的示例,我也会发疯。我一生无法束缚工作。这是一个超级简单的示例,对我不起作用。我必须做某件事不正确。 我在控件库程序集中的自定义控件: public class TestControl:Control { public static read DependencyProperty TestPropProperty = DependencyProperty.Reg
..
我有许多项目的大型解决方案。 有些项目依赖于其他项目(尽管从来没有循环依赖)。 当我尝试删除项目的依赖项时,出现一条错误消息,例如“依赖项是由项目系统添加的,无法删除”。此错误的原因是什么?我该如何解决? 解决方案 当我尝试手动编辑由CMake系统生成的项目/解决方案时,有时会遇到此问题。我手动解决它: 在您喜欢的文本编辑器中打开相关的.vcproj文件。 找到
..
如何注册一个依赖关系属性,该依赖关系属性的值是使用另一个依赖关系属性的值计算的? 由于WPF在运行时绕过.NET属性包装器,一次,不应在getter和setter中包含逻辑。解决方案通常是使用 PropertyChangedCallback s。但是,这些被声明为静态的。 例如,完成此人为任务的正确方法是什么: public bool TestBool { get {re
..
我有一个控件(该控件继承自您)。 每当更改 FontSize 或 Style 属性时,我都希望收到通知。在WPF中,我可以通过调用 DependencyProperty.OverrideMetadata()来实现。当然,类似的有用的东西在Silverlight中没有位置。那么,一个人怎么会收到这类通知呢? 解决方案 我认为这是一种更好的方法。 ///监听依赖属性的更改 publ
..
我有一个非常简单的IMultiValueConverter,可以对两个值进行“或”运算。在下面的示例中,我想使用一个同样简单的布尔值反相器来反转第一个值。
..
我有以下代码来订阅 Column 类的 VisiblePosition 属性的属性更改事件: DependencyPropertyDescriptor dpd = DependencyPropertyDescriptor.FromProperty(ColumnBase.VisiblePositionProperty,typeof(Column)); if(dpd!= null)
..
我知道 CoerceValueCallback 用于更正值,并且 ValidateValueCallback 将返回true或false。但是我的问题是为什么我们需要 ValidatevalueCallback ?我们可以简单地使用 CoerceValueCallback 进行验证(使用if条件)并更正该值。您能否举一些实际的例子说明何时使用强制与验证? 解决方案 值强制基本上是用来更改值
..
我正在使用Infragistics XamDateTimeEditor控件,我想向其添加一个依赖项属性,以允许开发人员选择在控件获得焦点时选择所有文本。我已经创建了一种用于设置所需行为的样式,但是我希望开发人员根据布尔依赖项属性决定是否应执行该行为。我不确定该怎么做。 解决方案 我假设您为此从XamDateTimeEditor继承。 如果您可以编写引用“标准”(clr)属性的代码,然
..
假设您有一个从ValidationRule继承的类: 公共类MyValidationRule:ValidationRule { 公共字符串ValidationType {得到;组; } 公共替代ValidationResult Validate(对象值,CultureInfo cultureInfo){} } 在XAML中,您正在像这样进行验证:
..
如果我创建这样的自定义控件: 公共类MyControl:ContentControl { 公共静态只读DependencyProperty ItemsProperty = DependencyProperty.Register( “ Items”, typeof(ObservableCollection), typeof(MyControl), 新的Proper
..
在MSDN和其他资源上进行了大量搜索之后,我基本上发现“某些”依赖属性确实支持类似于WPF的属性值继承。但是,据我所知,没有确定哪些属性可以定义哪些属性的明确列表。例如,我知道字体属性;但是HorizontalContentAlignment却没有。我还在该论坛中看到了另一个线程,该线程指出DP优先级列表不包括值继承( http://msdn.microsoft.com/en-us/libra
..
在WPF中,真正成为“依赖属性”意味着什么? 我阅读了Microsoft的依赖项属性概述,但对我而言并没有真正陷入困境。该文章的部分内容为: 样式和模板是使用依赖项属性的两种主要激励方案。样式对于设置定义应用程序用户界面(UI)的属性特别有用。样式通常在XAML中定义为资源。样式与属性系统进行交互是因为样式通常包含特定属性的“设置器”,以及基于另一个属性的实时值更改属性值的“触发器”。
..
有人可以解释为什么将依赖项属性声明为静态吗? 解决方案 您声明为静态的字段只是 identifier ,而不是属性的 value 。它在该类的所有实例之间共享,并用于获取/设置每个实例的属性值。
..
Microsoft为什么不采用制作依赖属性和依赖对象而不是使用反射和属性的方法? 解决方案 帮助我理解了原因: 主要区别是,普通.NET属性的值是直接从读取 中的私有成员,而调用从DependencyObject 继承的 GetValue()方法时,动态解析DependencyProperty的值。 设置依赖项属性的值时,它不会存储在对象的字段中,而是存储在基础提供的键和值的字
..
我有以下代码。正在调用PropertyChanged事件,但不调用getter和setter。我一辈子都看不到为什么。我还有其他属性,其中发生相同的事情,但正在设置值。如果这有所不同,这是一个自定义控件。当我在get / set处设置断点时,我什么也没得到。但是,更改的属性返回正确的值。 /// ///标识PlacementTarget依赖项属性。 ///
..
我有一些WPF控件。例如,TextBox。如何枚举该控件的所有依赖项属性(如XAML编辑器一样)? 解决方案 公共IList GetAttachedProperties(DependencyObject obj) { List结果=新的List(); f
..
我在用户控件中定义了如下属性: public bool IsSelected { get {返回(bool)GetValue(IsSelectedProperty); } set { SetValue(IsSelectedProperty,value); StackPanelDetails.Visibility =值? Visibility.Visible:Visibi
..
我有一个WPF应用程序,在其中我要通过XAML声明进行设置的代码隐藏使用依赖项属性。 例如 因此在此示例中,我有 UserControl 称为 SelectControl ,它具有名为 StateType 的属性,该属性可以操纵其设置程序中的其他一些属性。
..