将所选项目归因于某种类型

时间:2015-01-10 14:05:29

标签: c# wpf xaml combobox boxing

我有一个包含 Something 类型项目的组合框。在事件发生时,我想将该项目分配给变量。目前,由于 SelectedItem 的类型为 Object ,我需要将其拆分为所需的类型。

Something something = ThatComboBox.SelectedItem as Something;

如果按枚举键入类型会更加不方便,因为那时我需要对它进行强制转换或者为空,然后像这样合并。

Something something;
  something = (Something)ThatComboBox.SelectedItem;
  something = ThatComboBox.SelectedItem as Something? ?? default(Something);

我想知道我是否可以(如果是这样我怎么做)属性(或类似)组合框,这样当我得到它所选择的项目时,我会得到它作为我心中所想的任何类型。或者,至少,拳击之前的类型。

请注意,我想知道我是否可以没有扩展方法。

1 个答案:

答案 0 :(得分:0)

ComboBox.SelectedItem的类型为object,因此它可能包含对任何类型(或null)的引用。

as oerator根本不起作用,只是让编译器将引用视为对另一种类型的引用(在您的情况下是对Something的引用)。

不涉及运行时开销,源代码中只有一行。我不明白为什么/如何避免这一点。