如何清除WPF中的組合框?我曾嘗試這樣的代碼:清除WPF中的組合框
private void btClear1_Click(object sender, RoutedEventArgs e)
{
txtID.Text = String.Empty;
this.cbType.SelectedItem = -1;
}
如何清除WPF中的組合框?我曾嘗試這樣的代碼:清除WPF中的組合框
private void btClear1_Click(object sender, RoutedEventArgs e)
{
txtID.Text = String.Empty;
this.cbType.SelectedItem = -1;
}
要清除選擇集中的SelectedIndex
不是SelectedItem
cboType.SelectedIndex = -1;
您可以設置SelectedItem
或SelectedValue
,但將其更改爲null
而不是-1(這些指向的對象不是整數)。
cboType.SelectedItem = null;
當我嘗試這個時得到:對象引用未設置爲對象的實例。在cbType_SelectionChanged - – user2631662
@ user2631662更改您的'SelectionChanged'事件檢查爲null之前,它試圖做的事情組合框選擇項 –
我怎麼能這樣做 – user2631662
cbTypion.SelectedItem = -1
清除選擇 cbType.Items.Clear()
清除所有項目
標準的WPF組合框沒有任何叫做ClearSelection()的東西。可能來自ASP或其他? –
@KevinDiTraglia我糾正!自從我開發WPF以來,這已經有一段時間了。是的,它在ASP.NET中可用。答案已更新。 – Fred
它確實取決於ComboBox是通過添加一個'ComboBoxItem'來填充的 - 無論是在XAML還是動態的 - 或者它是通過綁定到'ItemsSource'來填充的。如果使用後者,則不能執行'cbType.Items.Clear()' - 您將得到:'在ItemSource正在使用時操作無效。改爲使用ItemsControl.ItemsSource訪問和修改元素。 – vapcguy
您可以通過在XAML頁面中進行綁定來重置組合框。
例如,在XAML頁面,組合框領域:
text={Binding viewmodelobject Name.property Name}
然後在ViewModelPage
:
viewmodelobject Name.property Name="";
共清理箱內物品
讓Google,因爲標題是誤導,如果我們正在談論清除箱子中的物品,我已經看到幾個答案,說使用cbType.Items.Clear()
。這取決於物品是如何加載的。您可以將它們硬編碼到XAML中,在運行時動態添加它們,使用一種數據綁定和/或將它們加載到.ItemSource
。除了後者的情況,它將適用於所有人。
當您使用.ItemSource
加載通過DataTable的DefaultView
的ComboBox
,例如,你不能簡單地做cbType.Items.Clear()
。由於填充下拉菜單的方法這個問題是不包括在內,我認爲,當你設置.ItemSource
的,你必須做到:
cbType.ItemsSource = null;
代替。否則,如果您嘗試cbType.Items.Clear()
您將獲得:
Operation is not valid while ItemSource is in use. Access and modify
elements with ItemsControl.ItemsSource instead
清除所選項目
我回去,看到了OP的評論,稱願望是明確的選擇,而不是框。爲此,其他答案表示爲:
cbType.SelectedIndex = -1;
cbType.Text = ""; // I've found the first line does this for me, as far as appearances, but found other postings saying it's necessary - maybe they were using the property and it wasn't getting cleared, otherwise
cbType.Items.Clear? – Fred
如清除所有項目一樣清除,或清除選項中的清除項目? –
清除選擇 – user2631662