我正在开发一个 wpf 应用程序,当使用组合框控件时,我将 ItemsSource 分配给它。因此,它显示了一个未选择项目的项目列表,现在用户可以选择他选择的项目。当用户做出选择时,他无法撤消该选择。我希望他能够获得没有选择任何项目的初始状态。我怎样才能做到这一点?
问问题
938 次
3 回答
1
一般来说,我发现如果我需要增加 WPF 应用程序的复杂性,将其添加到数据源比将其添加到 XAML 更可靠。
在您的示例中,我将在我的数据源中解决此问题。如果我有:
public IEnumerable<Person> People { get {...} }
在我的数据源中,我会添加这个:
public IEnumerable<Person> PeopleWithNull
{
get
{
return (new List<Person> { null }).Concat(People);
}
}
于 2009-11-25T20:42:18.450 回答
1
我每次都会在默认的空白记录(索引为-1)上重置回 --None- 记录。如果您正在处理“选择更改”或 ComboBox 上的某些事件,那么如果您将框指向 -1,则可能会出现空引用错误,这同样容易,因为您必须进行的唯一更改是设置选择的索引(比如说)0而不是-1。
myComboBox.SelectedIndex = 0; //where 0 is a given default content entry.
于 2009-11-24T13:04:40.827 回答
1
在 Windows 窗体编程中也有多种类似的方法。您可以执行以下任一操作:
1) 将空白或 --None-- 记录添加到作为默认记录的组合框数据源。2)您可以监视按键事件并说使用 ESC 键将所选索引重置回-1。
3)如果您的组合框允许输入,您还可以允许他们清除文本并在文本字段为空白时保持离开,将 selectedindex 设置回 -1 以便它不会重置为所选值。
很多时候,我的用户更喜欢选项 1,但那是我的用户。
那应该给你一些选择。
于 2009-11-24T11:59:05.503 回答