올바른 방법은 항목 목록과 선택한 항목을 갖는 것입니다. ViewModel의 항목. Caliburn.Micro의 규칙은 ItemsSource
(<x:Name>
사용)과 SelectedItem (Selected<x:Name>
사용)을 모두 해결하도록 설정되었습니다.
뷰 모델 :
internal class FuelViewModel : Screen
{
public FuelViewModel()
{
FuelType = Enum.GetValues(typeof(Fueltype)).Cast<Fueltype>().ToList();
}
private Fueltype selectedFuelType;
public Fueltype SelectedFuelType
{
get => selectedFuelType;
set => Set(ref selectedFuelType, value);
}
public IReadOnlyList<Fueltype> FuelType { get; }
}
보기 :
<ComboBox x:Name="FuelType"/>
편집 :
Sybren의 링크가 제시 일을하지 않는 이유는에 의해 MVVM 원칙을 나누기 때문이다 View 제어 데이터를 작성합니다. 간단한 열거 형 백업에서 데이터베이스 백업으로 변경하면 뷰가 중단됩니다. 올바른 접근 방식을 사용하면보기를 전혀 건드리지 않고 ViewModel의 유형을 변경할 수 있으며 ViewModel을 깨지 않고도보기를 교환 할 수 있습니다.
예 : https://summergoat.wordpress.com/2008/07/08/enum-getvalues-markup-extension/ – Sybren