0

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

private void Item_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{

}

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

XAML

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <EventSetter Event="PreviewMouseLeftButtonDown" 
            Handler="ListViewItem_PreviewMouseLeftButtonDown" />
    </Style>
</ListView.ItemContainerStyle>

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

Item_PreviewMouseLeftButtonDown(listView.Items[slideListView.Items.Count-1], null);
4

1 回答 1

5

直接调用事件处理程序或“伪造”事件通常是不好的做法。取而代之的是,为什么不包装处理程序的功能并将其放入事件处理程序将调用的另一个方法中。然后,您也可以从任何其他位置调用该方法。

private void PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    // Doing something
}

=>

private DoingSomething()
{
    // Doing something
}

private void PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    DoingSomething();
}

现在您可以DoingSomething()从任何地方拨打电话。

于 2013-08-12T15:40:25.010 回答