私は過去になっていないWPFデータバインディングの問題があります。私は次のようにMVVMを設定している:WPF(mvvm)データバインディングitemssourceとselecteditemを別のモデルに変更
public class ModelA
{
public int Id
{
//Property uses INotifyPropertyChanged
}
}
public class ModelB
{
public ModelA The_A
{
//Property uses INotifyPropertyChanged
}
}
public class ViewModel
{
public IEnumerable<ModelA> ModelAList
{
//Property uses INotifyPropertyChanged
}
public IEnumerable<ModelB> ModelBList
{
//Property uses INotifyPropertyChanged
}
}
私のXAMLのDataContextのは、ViewModelに(驚き)である、と私はそれで、このリストボックスを持っている:
<ListBox ItemsSource="{Binding ModelBList}">
<ListBox.ItemTemplate>
<DataTemplate>
<ComboBox
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.ModelAList"
SelectedItem="{Binding The_A}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
私は私の窓を開くと、コンボボックスをアイテムは選択されていませんが、チェックボックスから何かを選択すると、The_Aは選択したアイテムに設定されます。
私の推測では、私のModelAListのModelAはModelB'sのModelAとは異なると思います。私はこのデータ結合作業を行うことができる方法はありますか?多分私は何かが明らかでないか、問題を正しく攻撃していないかもしれません。
ありがとうございます!
チェックボックスが{CheckBox IsChecked = "{バインディング、Mode = TwoWay}"にバインドされています "/> – SilentCoder
ああ、私はコンボボックスの代わりにCheckBoxを使用しました。私はコンボボックスを使用することを意図していたので、selecteditemとitemssourceプロパティを使用しました。私はそれをお詫び申し上げます! モードをTwoWayに設定しても効果はありませんが、残念ながら、お勧めです! –
それを聞いてよかったです。それは起こる..乾杯! – SilentCoder