Лучший способ определить элемент управления WPF? - PullRequest
0 голосов
/ 23 декабря 2011

Прошу прощения за смутное название. Я пытаюсь найти лучший способ сделать это:

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

Я не люблю жестко кодировать имена текстовых полей, потому что они могут изменить и сломать мой код. Есть идеи как лучше это сделать?

Ответы [ 3 ]

2 голосов
/ 23 декабря 2011

Вы можете использовать свойство Tag текстовых полей, оно может содержать все, что вам угодно (любой объект, строка, int, ...).

Во многих случаях вы можете обнаружить, что то, что вы делаете, являетсяне нужно.Если вы добавите к своему вопросу, что именно вы пытаетесь достичь, у вас могут появиться лучшие предложения.

1 голос
/ 23 декабря 2011

Вам на самом деле не нужно жестко кодировать это, просто сделайте это вместо того, что у вас есть:

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

Таким образом, если они изменятся, вы получите исключение времени компиляции =).

0 голосов
/ 23 декабря 2011

Где-то в графе зависимостей должна быть запись UserData, но она не может быть найдена в MSDN.

А как насчет использования свойства Tag ( см. Здесь ) для хранения значения, которое вы можете использовать для идентификации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...