我遇到了 Visual Studio 2010 的 WPF 属性网格的一个非常奇怪的行为。我正在开发一个包含大量属性和事件处理程序的组件工具集。ref参数导致问题。
在我的一个对象中,我有PositionChanged
事件处理程序,其ref参数定义如下:
public delegate void PositionChangedHandler(LineSeriesCursor sender, double newValue, **ref** bool cancelRendering);
public event PositionChangedHandler PositionChanged = null;
当我创建一个实例LineSeriesCursor
并定义事件处理程序时
LineSeriesCursor cursor = new LineSeriesCursor();
cursor.PositionChanged += [TAB][TAB]
它正确创建处理程序方法存根:
cursor.PositionChanged += new LineSeriesCursor.PositionChangedHandler(cursor_PositionChanged);
void cursor_PositionChanged(LineSeriesCursor sender, double newValue, **ref** bool cancelRendering)
{
//this works and compiles then OK.
}
但是,如果我LineSeriesCursor
在 WPF 属性网格中添加,然后导航到LineSeriesCursor
XAML 中的标记,PositionChanged
从属性网格添加事件处理程序,则在没有ref的情况下创建方法存根,如下所示:
private void LineSeriesCursor_PositionChanged(LineSeriesCursor sender, double newValue, bool cancelRendering)
{
//Does not compile, because of invalid method parameter list. **ref** is missing.
}
对我来说,这听起来像是 Visual Studio 2010 的错误。有没有类似的经验或建议?
谢谢你的帮助。