使用Template10的UWP应用程序的viewmodel中的propertychanged触发器由以下方式触发:
public var Thing{ get { return thing; } set { Set(ref thing, value); } }
Set函数放在bindableBase类中。
如何在Usercontrol中使用相同的功能?
我尝试了下面的内容,但这并没有奏效:
BindableBase x;
var foo;
public var Foo{ get { return foo; } set { x.Set(ref foo, value); } }
答案 0 :(得分:0)
如果您放置usercontrol的页面具有与填充视图模型的usercontrol部分的字段相关联的属性,那么您不会以这种方式使用视图模型,例如,该视图模型绑定到Page的DataContext 。我想你需要复习MVVM。或者viewmodel可以是有问题的userControl的DataContext。
答案 1 :(得分:0)
创建UserControl
时,您需要使用DependencyProperty
来创建可绑定属性。当在另一个控件(如Page
)中使用UserControl时,需要使它们按预期运行。 DependencyProperties定义如下:
public int MyProperty
{
get { return (int)GetValue(MyPropertyProperty); }
set { SetValue(MyPropertyProperty, value); }
}
// Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MyPropertyProperty =
DependencyProperty.Register("MyProperty", typeof(int), typeof(ownerclass), new PropertyMetadata(0));
使用Visual Studio中的propdp
代码段最容易创建它们。
我建议给this MVA course一个关于如何创建自定义控件的第一课(特别是第一课)