MainWindow では、その定数を UserControl に設定しています -
<Grid>
<local:MainControl></local:MainControl>
</Grid>
MainControl では、他の UserControls を使用しています -
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="White" Offset="0"></GradientStop>
<GradientStop Color="LightBlue" Offset="1"></GradientStop>
</LinearGradientBrush>
</Grid.Background>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
</Grid>
<Grid Grid.Row="0">
<ui:TestHeader Height="20" Padding="20" Margin="2" Background="Gray"></ui:TestHeader>
</Grid>
</Grid>
ここで TestHeader は単純な UserControl です -
<UserControl.DataContext>
<model:TestViewModel></model:TestViewModel>
</UserControl.DataContext>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Label Grid.Row="0" Content="{Binding Path=Test}"/>
</Grid>
MainWindow で TestHeader を直接使用すると、ViewModel からのデータを確認できるようになりましたが、MainControl で同じ TestHeader を使用すると、ViewModel からデータを取得できません。どうすればこれに取り組むことができますか。私は何かを逃したと思いますが、何がわかりません。
解決策を提案してください。前もって感謝します。
アップデート
私はこれを見つけました -
<Grid Grid.Row="1">
<ui:TestHeader Height="20" Padding="20" Margin="2" Background="Gray"></ui:TestHeader>
</Grid>
<ui:TestHeader Grid.Row="0" Background="Gray" Height="20"></ui:TestHeader>
ここでは、コンテンツ全体が MainWindow の Grid にあります。外側の TestHeader はデータを取り込みますが、Grid 内の TestHeader はそうではありません。
アップデート
私はこれまでで最もばかげた間違いを犯しました -
パディングと高さを参照してください。どちらも 20 です。コンタント用のスペースはありません。