1.NuGet Microsoft.Xaml.Behaviors.Wpf
2.xml中声明
xmlns:i=“http://schemas.microsoft.com/xaml/behaviors”
3.调用事件,调用方法的3种方式
1.在ViewModel中调用方法
如果要用做系统中的参数,我觉这个很好用,直接把事件方法放过去就行了.如下:
<!-这里是xml UI->
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseMove">
<i:CallMethodAction MethodName="MouseMove" TargetObject="{Binding}" />
</i:EventTrigger>
</i:Interaction.Triggers>
//这里是Viewmodel中的事件,可以调用ViewMole中的绑定的内容.
public void MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
CartesianChart chart = (LiveCharts.Wpf.CartesianChart)sender;
……
}
2.将事件以绑定命令的方式,如果不会掉用系统里中的参数,这个也不错
<!-这里是xml Ui块->
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding NavigteCommand}" CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBox}}" />
</i:EventTrigger>
</i:Interaction.Triggers>
//这里是ViewModel块
public ICommand NavigteCommand
{
get => new DelegateCommand<Extensions.MenuBar>(
obj =>
{
if (obj == null || string.IsNullOrEmpty(obj.ToString()))
{
return;
}
NavigationParameters keys = new NavigationParameters
{
{ "ProductionInfo", _typeMode }
};//
_regionManager.Regions[Extensions.RegionManager.MainViewRegionName].RequestNavigate(obj.NameSpace,keys);//keys
});
}