在代码c#中调用事件

kev*_*ev3 0 c# wpf events

是否可以在代码中调用如下所示的事件.

private void Item_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{

}
Run Code Online (Sandbox Code Playgroud)

我要调用它的对象是ListView.Items [listView.Items.Count-1]

XAML

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <EventSetter Event="PreviewMouseLeftButtonDown" 
            Handler="ListViewItem_PreviewMouseLeftButtonDown" />
    </Style>
</ListView.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)

所以我试图调用它看起来像这样,但它不起作用.

Item_PreviewMouseLeftButtonDown(listView.Items[slideListView.Items.Count-1], null);
Run Code Online (Sandbox Code Playgroud)

She*_*dan 5

通常直接调用事件处理程序或"伪造"事件通常是不好的做法.而不是这样,为什么不结束处理程序的功能并将其放入事件处理程序将调用的另一个方法.然后,您也可以从任何其他位置调用该方法.

private void PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    // Doing something
}
Run Code Online (Sandbox Code Playgroud)

=>

private DoingSomething()
{
    // Doing something
}

private void PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    DoingSomething();
}
Run Code Online (Sandbox Code Playgroud)

现在你可以DoingSomething()从任何地方打电话.