2

背景を説明するために、Silverlight+MVVMとPRISMを使用しています。

グリッドに表示するマスターデータがいくつかあり、詳細データへのハイパーリンクとして最初の列があります。ハイパーリンクボタンのコマンドを公開しようとしていますが、うまく機能しないようです。

これが私のXAMLです->

            <telerik:RadGridView.Columns>
                <telerik:GridViewDataColumn Header="Detail ID">
                    <telerik:GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <HyperlinkButton Content="{Binding DetailID}" 
                                             Command="{Binding SelectGridItemCommand}" 
                     CommandParameters={Binding}
                                             />
                        </DataTemplate>
                    </telerik:GridViewColumn.CellTemplate>
                </telerik:GridViewDataColumn>

        ... [other columns]

</<telerik:RadGridView.Columns>

基本的に、列名にあるテキストを処理して、詳細ページに移動します。

誰かがここで私を助けてくれますか。

4

2 に答える 2

2

私は自分が間違っていたことを発見しました。ViewModel の Model オブジェクトを Grid にバインドしましたが、ViewModel でバインド コマンドを記述したときに、データ コンテキストをビューモデルに変更する必要があることを指定しませんでした。

とにかく、私は最終的にデリゲートを作成し、Model クラスでイベントを公開し、カスタム EventHandlerArgs で処理する ViewModel でそのイベントをサブスクライブしました。

于 2011-06-29T10:44:21.810 に答える
-1

Caliburn Microを使用すると、バインディングはシームレスになります。たとえば、「SelectDetail」などのコントロールに名前を付ける場合、隣接するViewModelのメソッドにもSelectDetailという名前を付ける必要があります。さらに、CanSelectDetailという名前のブールプロパティを作成すると、IsEnabledHyperliknのプロパティへの「automagic」バインディングがあります。

于 2011-06-26T17:35:20.473 に答える