2011-12-14 12 views
0

私は現在、データテンプレートの項目としてユーザコントロールをロードしているタブ項目を持っています。私は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> 
+2

あなたのViewModelは 'INotifyPropertyChanged'を実装していますか?プロパティが変更されたときにWPFがUIを自動的に更新する場合は、そのインターフェイスが必要です。おそらく、ViewModelコードを表示することができます。 – Rachel

答えて

1

これは切り取りと貼り付けですか?あなたの結合の閉鎖を「}」欠けているので...

0

は、彼らがINotifyPropertyChangedの実装をパブリックプロパティはありますか? XAMLでにバインド

0

あなたのviewmodelでShowReportプロパティはタイプ可視性(ではないブール値)であることを確認し
すべてのプロパティがViewModelにクラスで利用可能にする必要がありそうでない場合、コンパイラはエラーが表示されません、また、実行時にエラーが発生しないので、動作しません。
あなたは他の問題のためのより多くのXAML /コード(StackPanelの内部コントロール)を表示することができますか?
ビューXAMLとビューモデルコードでintrestedされます

+0

タイプはVisibilityです。 – sri

関連する問題