UWPコンボボックスItemsSourceは正しく表示されますが、SelectedItemはリストで選択されていません。どうしてこんなことに?UWPコンボボックスのSelectedItemの設定
XAML:
<ComboBox Name="FooComboBox"
ItemsSource="{x:Bind ViewModel.Foos}"
SelectedItem="{x:Bind ViewModel.Foo,Mode=TwoWay,Converter={StaticResource ChangeTypeConverter}}"/>
ChangeTypeConverter
がTemplate10
Foos
から来て、プロパティFoo
の値はViewModelに
public class ViewModel : ViewModelBase
{
Foo _Foo = default(Foo);
public Foo Foo { get { return _Foo; } set { Set(ref _Foo, value); } }
public ObservableCollection<Foo> Foos = new ObservableCollection<Foo>(FooService.GetFoos());
public ViewModel()
{
Foo = FooService.GetDefaultFoo();
AはFooに設定されているが、この
のように見えますpublic class Foo
{
public Guid FooId { get; set; } = Guid.NewGuid();
public string FooCode { get; set; }
public override string ToString()
{
return FooCode;
}
}
FooComboBox
はFoos
のリストを正しくレンダリングしますが、Foo
の現在の値にはSelectedItem
が設定されていません。どうしてこんなことに?
GetDefaultFooは()FOOSに実際にありますインスタンスを返していますか?つまり、Foos.Contains(Foo)== trueであることを確認してください。 –
ヒント@Henk Holtermanをありがとう。 'Foo'が' Foo's ...と同じFooId'と 'FooCode'になっていますが、' Foos.Contains(Foo) 'は' false'を返します。なぜ頭がおかしくなったのか疑問に思っていますか? – Vague
私はGetDefaultFoo()が同じソース(Db)から値を取得し、それ自身のインスタンスを作成すると思います。 –