簡體   English   中英

如何將綁定到枚舉的ComboBox的初始SelectedItem設置為包含該枚舉的對象的Value?

[英]How can I set the initial SelectedItem for a ComboBox bound to an enum, to a Value of an object containing that enum?

我目前在ListView中存在一個ComboBox。 該ComboBox的ItemSource綁定到一個StaticResource枚舉,該枚舉用我想提供給用戶的枚舉值填充ComboBox。 ListView本身綁定到一個Observable Objects對象,該對象具有與我要呈現的枚舉關聯的屬性。 大部分工作正常。

ComboBox正確顯示並顯示了Enum中的值。 它甚至開始填充我創建的Enum中的第一項。 但是,我試圖獲取它以顯示Listview所呈現的對象的實際Enum值,而當前並未這樣做。 我相信將我的SelectedValue和SelectedValuePaths設置為什么有問題,但是我很難找出確切的問題。

這是我現在用於ComboBox的XAML。

<DataTemplate>
  <ComboBox ItemSource={Binding Source={StaticResource dataFromStatusesEnum}}
   SelectedValue="{Binding JMessage3, Mode=TwoWay"}"
   SelectedValuePath="Statuses.Status"
  </ComboBox>
</DataTemplate>

這是我正在填充ListView綁定到的ObservableCollection的類。

public class Entity
{
    public string Name {get; set;}
    public Statuses Status {get; set;}
    Public Entity()
    {
        this.Name = "Test";
        this.Status = Statuses.Disabled;
    }
}

這是我現在將ComboBox ItemSource綁定到的枚舉。

public enum Statuses
{
    Enabled,
    Disabled,
    Deleted
}

據我了解我已經創建的XAML,ListBox正確綁定到ItemSource並顯示我期望的信息。

ComboBox已正確綁定到Enum,並在DropDown中將其顯示為ComboBox的選項。

我認為SelectedValuePath應該是Entity Class本身的Status屬性,並且我認為SelectedValue應該是我希望將其設置為枚舉的類型,但是顯然我在這種假設下是錯誤的。

編輯:想補充一點,這是當前不使用MVVM模式。 我正在為最終的目標而努力,但目前尚未實現。

得到了這個工作。 應該將SelectedValue設置為實體的Status屬性,並且不必將SelectedValuePath設置為任何值。 我不完全確定為什么,但是它能正常工作。

暫無
暫無

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

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