簡體   English   中英

數據綁定時wpf默認的comboBox項

[英]wpf default comboBox item when data-binding

我正在按照教程將一個comboBox綁定到一個Enum,並推出了這個XML代碼:

    <ComboBox 
        DisplayMemberPath="Key"
        SelectedValuePath="Value"
        ItemsSource="{Binding VolumeLevelList}"
        SelectedValue="{Binding SelectedVolumeLevel, ValidatesOnDataErrors=True, Mode=TwoWay}"
        Height="23" HorizontalAlignment="Left" Margin="189,70,0,0" 
        VerticalAlignment="Top" Width="120" />

我正在尋找一種方法來選擇默認選擇,例如

的SelectedIndex = “0”

但那不起作用..

我從教程中下載了代碼並注意到缺少某些東西。 MainViewModel ,正確實現了INotifyPropertyChanged ,但是, SelectedVolumeLevel屬性不會在set上調用RaisePropertyChanged()方法。 這意味着當您更新組合框時,源不會更新。 您的SelectedIndex不起作用的原因是因為SelectedValue已經設置並綁定到源。 要解決此問題,請向MainViewModel添加一個支持字段,如下所示:

private VolumeLevel selectedVolumeLevel = VolumeLevel.LowVolume; // Default is set to low

然后將SelectedVolumeLevel屬性更改為:

public VolumeLevel SelectedVolumeLevel
{
    get { return selectedVolumeLevel; }
    set { selectedVolumeLevel = value; RaisePropertyChanged("SelectedVolumeLevel"); }
}

現在每次更改組合框中的選定項目時,源都會正確更新。 這也應該修復您的默認選擇問題。

暫無
暫無

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

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