簡體   English   中英

C# ComboBox SelectedItem 不更新

[英]C# ComboBox SelectedItem not Updating

我的問題是,在我在 ComboBox 中選擇一個項目后,組合框的第一個項目或“默認”項目保持為空,但是如果我單擊組合框,下面顯示的值是可選的等等。但我希望單擊的一個顯示在“默認/第一個”位置。

到目前為止我嘗試過的
XAML:

<ComboBox Margin="55,0,0,10" Height="20" Width="145" VerticalAlignment="Center" HorizontalAlignment="Left" 
    ItemsSource="{Binding TabItems, Source={StaticResource MainWindowViewModelRefactored}, Mode=TwoWay}" 
    SelectedItem="{Binding SelectedItem, Source={StaticResource MainWindowViewModelRefactored}, Mode=TwoWay}" 
    DisplayMemberPath="Header">
</ComboBox>

財產:

public TabItem SelectedItem {
    get {
        return _selectedItem;
    }
    set {
        UpdateTCVCollection(value);
        _selectedItem = value;
        NotifyPropertyChanged("SelectedItem");
    }
}

如果我打開組合框,selecteditem 會突出顯示,但我也希望它在 ComboBox 關閉時顯示在“第一位”。

您可以在索引更改時添加一個方法,然后刪除用戶選擇的項目並在開始時添加它。

我已將Sorted的值設置為false因為這樣您選擇的值將不會在您的 ComboBox 中重新組織。

private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) {
    RadItem selectedItem = ComboBox1.SelectedItem as RadItem;

    if (selectedItem != null) {
        ComboBox1.Items.Remove(selectedItem);
        ComboBox1.Items.Sorted = true;
        ComboBox1.Items.Sorted = false;
        ComboBox1.Items.Insert(0, selectedItem);
        ComboBox1.Text = selectedItem.Text;
    }
}

將 UpdateSourceTrigger 添加到您的組合框。

UpdateSourceTrigger=PropertyChanged

例子:

<ComboBox Margin="55,0,0,10" Height="20" Width="145" VerticalAlignment="Center" HorizontalAlignment="Left" 
    ItemsSource="{Binding TabItems, Source={StaticResource MainWindowViewModelRefactored}, Mode=TwoWay}" 
    SelectedItem="{Binding SelectedItem, Source={StaticResource MainWindowViewModelRefactored}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
    DisplayMemberPath="Header">
</ComboBox>

看看這個 MSDN 鏈接

那應該可以幫助您解決問題。

你好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM