私は MVVM または PRISM ベースのモデルを使用していません。DataGrid DataTemplate 内で、DataGrid と同じレベルにあるコントロールにバインドしようとしています。これを行うと、null が返されます。
2 つの質問:
レイアウトルートとは?それを参照すると (この場合はグリッド)、オブジェクトが返されます。XAML で LayoutRoot をキャンバスに変更すると、null が返されます。
DataGrid 列の DataTemplate 内の XAML で Canvas にバインドするにはどうすればよいですか?
次の XAML があります: (長さのためにトリミングされています)
<Grid x:Name="LayoutRoot" Background="#F7F7F7">
<Border>
<Canvas x:Name="LayoutCanvas">
<!-- A lot of Xaml -->
</Canvas>
</Border>
</Grid>
Canvas 内には、次の DataGrid があります。
<sdk:DataGrid x:Name="dgOrderContents" AutoGenerateColumns="False">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="Thumb">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ucp:PhotoComponentForDataGrid Source="{Binding PhotoUrl}" PopupTarget="{Binding ElementName='LayoutCanvas' }" Width="60" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn
</sdk:DataGrid.Columns>
</sdk:DataGrid>
私の問題は、「LayoutCanvas」を使用してバインドしようとすると、値が null になり、エラーが発生することです。「LayoutRoot」にバインドすると機能しますが、UserControl 内にある FloatableWindow コントロールは Canvas に依存しているため、Canvas が必要です。
ヘルプや提案をお寄せいただきありがとうございます。