使用WPF应用程序和WPF UserControl。
我有一个在主应用程序中多次使用的usercontrol。
此usercontol中有一个按钮,单击它将显示全局字符串变量Properties.Settings.Default.StringA;
的内容(其中“stringA”只是此explenation中的一个示例)
例如,在此全局设置中,我有一个字符串parameterNameA和一个parameterNameB。
我应该在主要应用程序上做这样的事情:
UserController实例1:
<local:UserControl1 stringVariable="parameterNameA" />
UserController实例2:
<local:UserControl1 stringVariable="parameterNameB" />
在usercontroller中应该得到这样的东西:
public string stringVariable
{
get
{
return stringVariable;
}
set
{
settingThis = value;
}
}
但是这个人用它来制作一个字符串。
但我想要的是让它获得正确的参数Properties.Settings.Default.StringA;
,其中“StringA”应该是“parameterNameA”或“parameterNameB”
真的陷入了这一个。有人有什么想法吗?
============================================ =======
编辑1 - 修改问题以便更好地解释
我正在使用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,我希望它显示messageB。
所以在应用程序窗口中,我有类似的东西:
<local:UserControl1 stringVariable="messageA" />
<local:UserControl1 stringVariable="messageB" />
因此,在用户控制器中,它应该理解,当设置stringVariable="messageB"
时,它应该调用Properties.Settings.Default.messageB
而不是Properties.Settings.Default.messageA
我希望我现在解释得更好。
答案 0 :(得分:0)
如果我理解正确:
为什么不通过构造函数中的参数传递用户控件中Properties.Settings.Default.StringX
的内容,将其保存为属性并在任何地方使用它?
答案 1 :(得分:0)
我想我明白你在这里想要什么,但我不确定100%是因为代码中的所有问题。如果我理解正确,您想要使用全局设置的值而不是名称。或者,有一些方法从设置的名称中提取值...
您仍然可以存储设置变量的名称,但您只需使用ConfigurationManager根据键(名称)返回设置。确保包含必要的参考和使用陈述。
public string StringVariable { get; set; }
public string SettingValue
{
get { return ConfigurationManager.AppSettings[StringVariable]; }
}