[英]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.