识别WPF控件的最佳方法是什么?

时间:2011-12-22 20:09:30

标签: c# wpf

我为这个模糊的标题道歉。我正在努力寻找更好的方法:

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

我不喜欢硬编码文本框名称,因为它们可以更改和破坏我的代码。关于如何更好地做到这一点的任何想法?

3 个答案:

答案 0 :(得分:2)

您可以使用Textboxes的Tag属性,它可以保存您想要的任何内容(任何对象,字符串,int,...)。

在许多情况下,您可能会发现您不需要做的事情。如果你在问题中添加你想要实现的目标,你可能会得到更好的建议。

答案 1 :(得分:1)

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

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

这样一来,如果他们改变你就会得到编译时异常=)。

答案 2 :(得分:0)

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

如何使用Tag属性(see here)存储可用于识别的值?