识别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;
}
}
我不喜欢硬编码文本框名称,因为它们可能会改变并破坏我的代码。关于如何更好地做到这一点,有什么想法吗?
你可以使用文本框的Tag属性,它可以容纳任何你想要的东西(任何对象,字符串,int,…)
在许多情况下,你会发现你正在做的事情是不必要的。如果你在问题后面加上你想要完成的是什么,你可能会得到更好的建议。你真的不需要硬编码,只是这样做,而不是你有:
public void DoSomething(Textbox tb)
{
if(tb == tbOne)
{
}
else if (tb == tbTwo)
{
}
}
这样,如果它们改变了,你将得到一个编译时异常=)。
应该在依赖关系图向上的某个地方有一个UserData
条目,但在MSDN上找不到它。
使用Tag
属性(见这里)来存储一个可以用于标识的值怎么样?