将System.Windows.Controls存储到字典中

时间:2016-07-06 08:28:58

标签: c# dictionary controls

我需要一个字典,它将Type作为键,Control作为值。例如,对于String类型,Control将是TextBox;对于布尔类型,控件将是单选按钮,依此类推...... 问题是当我声明像Dictionary<Type, Control>这样的字典时,并尝试添加TextBox,例如它说TextBox是一种类型,在给定的上下文中无效。 有什么想法吗?

3 个答案:

答案 0 :(得分:0)

由于docvpa,您必须声明p/q而不是Dictionary<Type, Type>

Dictionary<Type, Control>

然后使用它

TextBox

答案 1 :(得分:0)

  Dictionary<Type, Control> dictionary = new Dictionary<Type, Control>();
  dictionary.Add(typeof(string), textBox);
  dictionary.Add(typeof(bool), checkBox);

答案 2 :(得分:0)

您似乎正在尝试将Control类型(字面意思)添加到字典中,字典应该包含Control个实例:

var dictionary = new Dictionary<Type, Control>();
dictionary.Add(typeof(string), TextBox);

你不能这样做。您需要放置Control的特定实例,或者,如果这只是一些地图以供进一步参考,请重新声明字典:

var dictionary = new Dictionary<Type, Type>();

并填入 types

dictionary.Add(typeof(string), typeof(TextBox));
// and so on