私は現在、データテンプレートの項目としてユーザコントロールをロードしているタブ項目を持っています。私は2つの日付ピッカーとボタンを持っています。このボタンをクリックすると、他のコントロールをロードするスタックパネルを表示する必要があります。ここで私の問題は、クリックイベントがトリガされ、新しいデータが新しいオブジェクト/コレクションで使用可能になっていますが、ビューモデルのプロパティにそのデータを割り当てると、データでコントロールが更新されません。また、私はパネルの可視性を変更することができません。 コードはビューモデルを更新するときに、なぜユーザーコントロールが更新されないのですか?
です。ユーザーコントロールは、タブアイテムのデータテンプレートであり、タブコントロールのアイテムソースはコレクションにバインドされています。私は今まで私がビューモデルのプロパティでコントロールを直接バインドしようとしたときに私はバインディング式のエラーを取得していたので、私は何がモデルクラスのコンストラクタで同じプロパティを作成し、そこに私は/ viewmodelプロパティの値を取得/設定します。現在、モデルクラスで定義されたプロパティをバインドすると、コンパイラはバインディングエラーを表示しません。
<UserContrl>
<StackPanel Grid.Row = "0">
<Button Grid.Column="4" HorizontalAlignment="Left" Content="Generate Graph"
Width="140" Command="{Binding GenGraph}" />
</StackPanel>
<StackPanel Grid.Row = "1" Visibility={Binding ShowReport">
......
</StackPanel>
</UserControl>
あなたのViewModelは 'INotifyPropertyChanged'を実装していますか?プロパティが変更されたときにWPFがUIを自動的に更新する場合は、そのインターフェイスが必要です。おそらく、ViewModelコードを表示することができます。 – Rachel