2

行がビューモデルにバインドされているデータグリッドがあります。

最初の列には、行の itemno にバインドするイメージ コントロールがあります。これはうまくいきます。

ここで、この画像に、画像の拡大版を示すツールチップが必要です。とても簡単だと思いましたが、ツールチップはおそらく行のデータコンテキストを取得していないことに気付きました。

では、行がバインドされているのと同じデータにバインドするために、ツールチップを取得するにはどうすればよいでしょうか? 以下のコードでは、ツールチップの ItemNo は null ですが、「親」イメージ コントロールでは正しい値になっています。

<DataGridTemplateColumn Header="Image" IsReadOnly="True">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <controls:ItemImage Width="16" Height="16" DataContext="{Binding ItemNo, IsAsync=True}" >
                                        <controls:ItemImage.ToolTip>
                                            <StackPanel>
                                                <controls:ItemImage Width="300" Height="300" DataContext="{Binding ItemNo, IsAsync=True}" />
                                                <Label Content="{Binding ItemNo}" />
                                            </StackPanel>
                                        </controls:ItemImage.ToolTip>
                                    </controls:ItemImage>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
4

1 に答える 1

3

ツールチップ dataContext は、デフォルトで既に ItemNo に設定されています。そのため、次のようにリセットします。

<controls:ItemImage Width="300" Height="300" DataContext="{Binding ItemNo, IsAsync=True}" />
...うまくいきません。

取り除くだけDataContext="{Binding ItemNo, IsAsync=True}"

snoopを使用すると、wing バインディング エラーまたは既に設定されている dataContext を表示するのに役立ちます。

于 2013-03-06T10:08:25.100 に答える