2012-04-05 7 views
0

Использование приложения WPF и UserControl WPF.Параметр XML-pass в UserControl

У меня есть пользовательское управление, которое находится в основном приложении несколько раз. Существует кнопка в этом usercontol, и нажмите будет показывать содержимое глобальной строки переменной Properties.Settings.Default.StringA; (где «stringA» является лишь примером в этом explenation)

К примеру, в этом глобальных настройках у меня есть string parameterNameA и параметрNameB.

я должен сделать что-то вроде этого на главном приложении:

UserController экземпляра 1: <local:UserControl1 stringVariable="parameterNameA" />

UserController пример 2: <local:UserControl1 stringVariable="parameterNameB" />

В UserController это должно получить что-то вроде этого:

public string stringVariable 
{ 
    get 
    { 
     return stringVariable; 
    } 
    set 
    { 
     settingThis = value; 
    } 
} 

But th это один из них. Но я хочу, чтобы он получил правильный параметр Properties.Settings.Default.StringA;, где «StringA» будет «параметромNameA» или «parameterNameB»

Действительно застрял в этом. У кого-нибудь есть идеи?

=================================================================================================================================================== ======

EDIT 1 - Пересмотр THT вопроса, чтобы лучше объяснить

Я с помощью приложения WPF и WPF UserControl.

У меня есть UserControl, в котором есть кнопка. Нажатие этой кнопки будет делать: MessageBox.Show(Properties.Settings.Default.messageA);

Таким образом messageA является одной из глобальных строковых переменных.

Теперь им положить этот UserControl в окне aplligation корыта XML:

<local:UserControl1 stringVariable="messageA" />

Но им не положить его там однажды, я хочу поставить его несколько раз в окне приложения. Но, как вы поймете, нажав на кнопку, она всегда будет показывать messageA.

Так что я пытаюсь: Я хочу добавить в UserControl то, что бы определить, что сообщение, чтобы показать, когда называется Properties.Settings.Default.messageA, но для второго экземпляра в окне приложения, я не хочу, чтобы это показать messageA, я хочу это показать сообщениеB. Так в окне приложения, я хоть что-то вроде этого:

<local:UserControl1 stringVariable="messageA" />

<local:UserControl1 stringVariable="messageB" />

Так в UserController, так или иначе он должен понимать, что когда stringVariable="messageB" установлен, он должен вызвать Properties.Settings.Default.messageB и не Properties.Settings.Default.messageA

Надеюсь, я объяснил немного лучше сейчас.

+0

Я читал этот вопрос около 4 раз, и он все еще запутан. Пожалуйста, пересмотрите его и уточните, в чем проблема. –

+0

ok, Отредактировано, чтобы добавить дополнительную информацию. Я действительно надеюсь, что теперь это станет более ясным. – Dante1986

+0

Непонятно мне тоже. – Paparazzi

ответ

0

Если я правильно понял:

Почему не просто передать содержание вашего Properties.Settings.Default.StringX в вашем пользовательском элементе управления с помощью параметра в конструктор, сохранить его в качестве свойства и использовать его везде, где вы хотите?

0

Я думаю, что понимаю, что вы хотите здесь, но я не уверен, что на 100% из-за всего пуха в вашем коде. Если я правильно вас понимаю, вы хотите использовать значение глобальной настройки вместо имени. Или у вас есть какой-то способ вывести значение из имени настройки ...

Вы все еще можете сохранить имя переменной параметров, но вам просто нужно использовать ConfigurationManager, чтобы вернуть параметр на основе ключа (имя). Обязательно включите необходимые ссылки и используйте инструкции.

public string StringVariable { get; set; } 

public string SettingValue 
{ 
    get { return ConfigurationManager.AppSettings[StringVariable]; } 
} 
Смежные вопросы