我正在用C# WPF做一个简单的应用程序,使用的是MVVM的Caliburn.Micro
我想执行ItemsControl
项的函数,但单击Rectangle
时出现下一个异常
System.Exception:'找不到方法ChangeColor
的目标。'
下面是XAML代码
<ItemsControl ItemsSource="{Binding Lines}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Background="LightYellow" Margin="10 0" Width="{Binding CanvasWidth}" Height="{Binding CanvasHeight}" Focusable="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding X}"/>
<Setter Property="Canvas.Top" Value="{Binding Y}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Rectangle Width="{Binding Width}"
Height="{Binding Height}"
Stroke="Black" StrokeThickness="1"
Fill="Black"
cal:Message.Attach="[Event MouseDown] = [Action ChangeColor()]"
/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
ItemsSource
是一个ObservableCollection
,它包含我创建的一个对象,该对象只有几个变量,如Rectangle
元素中的绑定和ChangeColor
函数
我认为这与当前上下文有关,但我不明白为什么,当绑定变量Width
和Height
工作正常时,尽管它们与ChangeColor
函数在同一个对象中
1条答案
按热度按时间e4eetjau1#
我唯一看到的是你的方法的一个糟糕的定义。
我已经测试过了,没有问题,这是我测试过的代码:单位:
MainViewModel.cs
xaml中定义的方法:
类Lines: