2011-12-22 2 views
0

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

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

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

ответ

1

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

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

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

+0

Не знаю, почему я сделал Не думай об этом! Благодаря! – ConditionRacer

+0

Рад, что я мог бы помочь =) – Carlo

2

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

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

+0

не может подчеркнуть второй абзац достаточно ... мы, люди, не знаем, как правильно это сделать в первый раз, поэтому чем больше вы расскажете нам, тем лучше ответ, который вы получите – Adam

0

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

Как насчет использования объекта Tag (see here) для хранения ценности, которую вы можете использовать для идентификации?

Смежные вопросы