1

我有我的自定义UserControlScaleTest),我在其中设置了一些嵌套属性,如下所示:

<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

我使用事件来通知ScaleTestscale 属性之一的变化。

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 设计器是否支持事件?

4

0 回答 0