XamlWriter/Reader->多个构造函数调用,导致重复元素
-
02-10-2019 - |
题
我有点困在这里。我正在使用拖索图书馆,该图书馆通过xamlwriter.save()序列化拖动的UIELEMENTS。
现在,我正在尝试将延长网格的类的某些实例拖动。在构造函数中,我将一些元素推入视觉树。当对象被启用并再次添加元素时(一次又一次,取决于我的拖曳频率)。可悲的是孩子们。计数告诉我,如果我从构造函数内获取价值,就没有孩子元素。如果我从外部(由MyGrid.Children.Count)检索它,它给了我更高的(不需要的)数量。
我应该使用其他功能来初始化视觉效果吗?还是其他防止这些重复的方法?
谢谢,欢呼
没有正确的解决方案
其他提示
花了一段时间,但我似乎找到了解决方案。
现在,我能够创建一个已经包含所有子类所需的视觉元素的基类。而且它们是通过XAMLWRITER/READER可简化的,而无需重复。哇。
1)扩展usercontrol(不要添加 - > usercontrol,但添加 - >类并手动继承)
2)放置标准初始化();进入构造函数
3)实现initializecontrol(),并将布局,孩子添加以及其中的任何内容
4)XamlWrite/XamlRead/继承像疯狂
希望这对某人有帮助,我还没有监督不可预见的。
- 编辑:当然。会有重复的人,但我们看不到它们。在XamlReader通过之后,我的InitializeComponent()创建了UIELEMENTS,之后得到了XAML优先。代码中的任何引用都考虑未显示的代码创建的控件:/
叹。
围绕这一点的完美方法是将开关放入初始化的事件处理程序中,这样的方法是这样的:if(HasContent)
Initialize();
else
Reinitialize();
Multiinitialize();
在哪里initialize()将uielements添加到视觉树中,重新引导()只是找到正确的引用(通过 control = FindName("controlName")
)和MultiNitialze()重新创建了事件处理程序,并且在Xamlreader的过程中丢失了其他东西。
好吧,现在您可以在XAML中实例化自定义继承的USERCORTROL,但是没有简单的方法来设置属性。这是因为设置属性发生在初始化事件之前发生,并且正在等待NullPoInterExceptions。我猜您可以使用绑定来解决这个问题。
但是必须有一种更简单的方法。请告诉我!