首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过依赖属性更改wpf自定义控件中内部元素?

如何通过依赖属性更改wpf自定义控件中内部元素?
EN

Stack Overflow用户
提问于 2012-03-16 23:11:14
回答 1查看 177关注 0票数 0

假设您有一个具有两个形状的自定义控件,并且您希望根据依赖属性的符号更改其中一个形状的颜色,该符号应该是数值。

我想XAML的解决方案是编写一个转换函数,并将形状绑定到该代码。

这里有个问题--我想通过代码来实现,而不是通过XAML绑定。

依赖属性是静态的,我很难访问组成控件的任何私有元素。

我可以只创建一个标准的.net get/set属性而不是dependency属性,然后这样做吗?我尝试过使用布尔值执行此操作,但设计时的属性窗格不允许取消选中布尔值,因此我认为这不是最佳实践。

EN

回答 1

Stack Overflow用户

发布于 2012-03-17 05:03:13

关键是添加PropertyChangedCallback,如果您通过提供的实例调用您的私有方法,请查看lambda表达式:

控件背后的代码(让我们称其为myControl)

代码语言:javascript
运行
复制
public static readonly DependencyProperty IntegerValueProperty =
DependencyProperty.Register("MYCustomDpProp", typeof(int?), typeof(myControl),
    new FrameworkPropertyMetadata(
             null, 
             FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, 
             (o, e) => ((MyControl)o).OnMYCustomDpPropChanged())); 

private void OnMYCustomDpPropChanged()
{
  //do you logic here
}

XAML中的某个地方,你可以绑定..then:

代码语言:javascript
运行
复制
<MyControl MYCustomDpProp={Binding MyModel.SomeProperty}"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9739798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档