C#'object'扩展方法仅适用于WPF ListBox控件

时间:2013-06-29 19:09:21

标签: c# wpf methods controls extend

我已经为WPF ListBox控件创建了一个用于处理 ListBox SelectedItem 的扩展方法,但是我想把它变得更好,我想在我输入listBox1.SelectedItem.MyExtendMethod();时显示我的扩展方法

我可以更改public static void MyExtendMethod(this object item)的方法,但会显示所有'对象'

我可以为此扩展方法做什么,只显示ListBox>对象?这可能吗?

2 个答案:

答案 0 :(得分:1)

嗯,不。由于扩展方法对呼叫网站一无所知,因此您无法将其限制为ListBox.SelectedItem。您最好只将其应用于ListBox

答案 1 :(得分:0)

ListBox.Selecteditem的数据类型是对象。所以你的扩展方法需要使用'this'的'object'数据类型。

然而,可以通过在为ListBox显式定义的扩展方法中处理SelectedItem来实现。

E.g。

public static class ListBoxExtensionMethod
{
    public static void yourSpecialExtendedMethodForSelectedItem(this ListBox listBox)
    {
        // do your work here on listBox.SelectedItem
    }
}