0

私はかなり長い間これを検索しようとしましたが、役立つ結果は見つかりませんでした。(おそらく私のgoogle-fooは動作する必要がありますか?)私もWPF MVVMにかなり慣れていないので、まだ学んでいることがたくさんあります。

私の質問は実際には2つの部分に分かれています...最初に、ビュー内にチェックボックスがあるコンボボックスがあります。コード:

 <ComboBox Grid.Column="0"
                      Grid.ColumnSpan="5"
                      Margin="15,0,0,0"
          ItemsSource="{Binding StaffNames}" 
                      SelectedValue="{Binding SelectedStaffNames}"
          Grid.Row="4">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <CheckBox Content="{Binding Path=FullName}"
                                  VerticalAlignment="Center"
                                  IsChecked="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type ComboBoxItem}},     Path=IsSelected,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
                                  Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window},
                            Path=DataContext.CheckBoxSelected}"
                                  Margin="3">  
                        </CheckBox>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>

チェックボックスをオンにするたびに、チェックボックスが自動的にオフになっているようです。

私のViewModelコードは次のとおりです。

private bool _isSelected;
        public bool IsSelected
        {
            get
            {
                return _isSelected;
            }
            set
            {
                _isSelected = value;
                RaisePropertyChanged("IsSelected");
            }
        }

ここで何が問題になっていますか?

2番目の質問は、上記が解決したら、チェックしたすべての名前(この場合はスタッフ名)をリストに追加し、値を別のビュー/ビューモデルに戻す必要があります。

私はこれを達成する方法について完全に途方に暮れています。どんな助けや提案も大歓迎です。

ありがとう :)

4

1 に答える 1

0

2 うまくいかない可能性があること

  1. コマンド「DataContext.CheckBoxSelected」でチェックボックスの値を設定しようとしていますか? すでにバインディングがあるため、これにより値がリセットされる可能性があります。

  2. チェックボックスをクリックしても、コンボボックスで選択した項目は更新されず、チェックボックスのみが更新されます。

于 2013-02-21T20:31:35.603 に答える