是否有可能从xaml更改值?

时间:2012-01-25 15:20:11

标签: wpf wpf-controls

是否可以从xaml更改属性值?

想象一下,我们有一个usercontrol,它具有一个已初始化的属性

public class MyUserControl : UserControl
{
    ...
    public SomeClass MainWindow
    {
         get
         {
              return _someClass ?? (_someClass = new SomeClass();)
         }
    }
}

现在可以更改SomeClass的属性而无需从xaml初始化它,也没有动画?

为什么xaml不允许语法写<UserControl.MainWindow.Property>

2 个答案:

答案 0 :(得分:1)

在属性中添加一个setter,并允许XAML根据需要创建自己的SomeClass - 现在通常已经完成了。

XAML是声明性语言,它不会尝试图灵完成或类似的东西,它只描述对象的创建

当然,有一个extreme solution。但是,请不要这样做。为了你,和其他人一起:)

编辑:

另一种解决方案可能是在UserControl中创建一个新属性,并将此属性与SomeClass(set{ this._someClass.someProperty = value; })的属性同步。如果在UserControl的XAML声明中设置此属性,则更改将传播到_someClass成员。

当然,如果要绑定到包装属性,则wrapper属性必须是依赖属性。

答案 1 :(得分:0)

一,你需要有一套来改变价值。二,只需绑定它就可以在XAML中使用它。