我创建了一个使用多个UserControl
的{{1}}。当我只有DependencyProperties
的一个实例时,一切都按预期工作。但是,如果我创建了对象的多个实例,则只有第一个实例可用(注意:不会抛出任何错误)。我唯一能想到的是拥有UserControl
的多个实例是不可能的。它是否正确?如果是这样,有没有替代方案/解决方法呢?
以下是我设置DependencyProperty
的方式示例:
DependencyProperties
UserControl的XML:
public int Value
{
get { return (int)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
public static DependencyProperty ValueProperty=
DependencyProperty.Register("Value", typeof(int), typeof(DataBar), new PropertyMetadata(0));
ShadowRec&根本不显示DataRec。
更新1:
我想我找到了问题的根本原因。在UserControl的后端,我修改了ShadowRec& DataRec,存储为私有静态变量。当我禁用代码的这一部分时,问题就消失了。不确定是否正在抓取错误的实例,或者是否存在更具体的方式我应该存储实例。
答案 0 :(得分:0)
问题是由实例变量引起的。通过删除实例变量并修改ShadowRec& DataChangedCallback方法中的DataRec,问题得到了解决。对于后来遇到类似问题的人来说,它看起来应该是这样的:
private static void OnValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
{
GraphBar gb = sender as GraphBar;
// do something here, such as: gb.DataRec.Width = 15;
}