我在WPF应用程序中使用MVVM Light。 我有一些usercontrol。它将元素名称作为命令参数传递给命令。
<UserControl>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<cmd:EventToCommand Command="{Binding LoadCommand}" CommandParameter="{Binding ElementName=Image}"></cmd:EventToCommand>
</i:EventTrigger>
</i:Interaction.Triggers>
<image Name="Image" />
</UserControl>
在我的MainView中,我使用此usercontrols:
<Window>
<l:mycontrol />
<l:mycontrol />
</Window>
视图模型
class MainViewModel:ViewModelBase
{
public MainViewModel()
{
LoadCommand = new RelayCommand<Image>(OnLoad);
}
private void OnLoad(Image image)
{
Draw(image,bitmap);
}
}
“Draw”是我在Image上用一些usercontrol参数写的函数。 原因图像具有相同的x:name,我的应用程序仅在最后一个图像上绘制。 我怎么能把我的元素传递给命令?