是否可以从xaml更改属性值?
想象一下,我们有一个usercontrol,它具有一个已初始化的属性
public class MyUserControl : UserControl
{
...
public SomeClass MainWindow
{
get
{
return _someClass ?? (_someClass = new SomeClass();)
}
}
}
现在可以更改SomeClass的属性而无需从xaml初始化它,也没有动画?
为什么xaml不允许语法写<UserControl.MainWindow.Property>
?
答案 0 :(得分:1)
在属性中添加一个setter,并允许XAML根据需要创建自己的SomeClass - 现在通常已经完成了。
XAML是声明性语言,它不会尝试图灵完成或类似的东西,它只描述对象的创建。
当然,有一个extreme solution。但是,请不要这样做。为了你,和其他人一起:)
编辑:
另一种解决方案可能是在UserControl中创建一个新属性,并将此属性与SomeClass(set{ this._someClass.someProperty = value; }
)的属性同步。如果在UserControl的XAML声明中设置此属性,则更改将传播到_someClass成员。
当然,如果要绑定到包装属性,则wrapper属性必须是依赖属性。
答案 1 :(得分:0)
一,你需要有一套来改变价值。二,只需绑定它就可以在XAML中使用它。