识别WPF控件的最佳方法

本文关键字:最佳 方法 控件 WPF 识别 | 更新日期: 2023-09-27 18:18:34

我为模糊的标题道歉。我正在寻找一个更好的方法来做这件事:

public void DoSomething(Textbox tb)
{
    switch(tb.Name)
    {
        case "tbOne":
            // Do something
            break;
        case "tbTwo":
            // Do something else
            break;
    }
}

我不喜欢硬编码文本框名称,因为它们可能会改变并破坏我的代码。关于如何更好地做到这一点,有什么想法吗?

识别WPF控件的最佳方法

你可以使用文本框的Tag属性,它可以容纳任何你想要的东西(任何对象,字符串,int,…)

在许多情况下,你会发现你正在做的事情是不必要的。如果你在问题后面加上你想要完成的是什么,你可能会得到更好的建议。

你真的不需要硬编码,只是这样做,而不是你有:

public void DoSomething(Textbox tb)
{
   if(tb == tbOne)
   {
   }
   else if (tb == tbTwo)
   {
   }
}

这样,如果它们改变了,你将得到一个编译时异常=)。

应该在依赖关系图向上的某个地方有一个UserData条目,但在MSDN上找不到它。

使用Tag属性(见这里)来存储一个可以用于标识的值怎么样?