我有一个这样的数据模板:
<DataTemplate DataType="{x:Type mvvm:ComponentViewModel}">
<v:UCComponents></v:UCComponents>
</DataTemplate>
UCComponent 是一个用户控件,具有一个名为 ID 的公共属性。ComponentViewModel 还有一个名为 ID 的属性。我想在 ViewModel 属性的设置器中设置 UCComponent ID 属性。我怎样才能做到这一点?
这是我尝试过的:
private string _ID;
public string ID
{
set { ((UCComponents)((DataTemplate)this).LoadContent()).ID = value; }
}
错误:这不能从 ComponentViewModel 转换为 DataTemplate。任何帮助将不胜感激。
我不忠于 MVVM 设计模式,这可能是我感到沮丧的原因,但是有没有办法访问模板中使用的 UserControl?
阿曼达
感谢您的帮助,但它不起作用。ID 的 getter 和 setter 永远不会被调用。这是我的代码:
public static DependencyProperty IDProperty = DependencyProperty.Register("ID", typeof(Guid), typeof(UCComponents));
public Guid ID
{
get
{ return (Guid)GetValue(IDProperty); }
set
{
SetValue(IDProperty, value);
LoadData();
}
}
我不能使 UserControl 成为 DependencyObject。这也许是问题所在?