我有我的自定义UserControl
(ScaleTest
),我在其中设置了一些嵌套属性,如下所示:
<local:ScaleTest Some="1">
<local:ScaleTest.scals>
<s:Scales step="15"></s:Scales>
<s:Scales step="10"></s:Scales>
<s:Scales step="30" color="Red"></s:Scales>
</local:ScaleTest.scals>
</local:ScaleTest>
我的控件根据该数据绘制一些图形,我的问题是更改这些嵌套属性不会导致设计器视图(或我的控件)更新,直到我重建我的项目。例如,更改step
不会导致更新,但是当更改时,视图会使用新值Some
重绘。step
我使用事件来通知ScaleTest
scale 属性之一的变化。
private List<Scales> _scals = new List<Scales>();
public List<Scales> scals {
get => _scals;
set {
_scals = value;
foreach (var s in _scals) {
s.STEP_CHANGE += onStepChange;
}
drawGrid(gr);
}
}
private void onStepChange(ScaleEvent e) {
drawGrid(gr);
}
private double sg;
public double Some {
get => sg;
set { sg = value;
drawGrid(gr);
}
}
我不确定设计师是否支持事件处理,或者我需要做更多的事情,或者这是一个错误。我最近与设计师有其他问题,即使是最简单的例子。例如我有
错误无法将“Scales”类型的值添加到“List”类型的集合或字典中。
虽然它呈现正确。我无法忍受它,有时它会自行消失,但我的简短问题是
XAML 设计器是否支持事件?