0
在主窗口反射數據,我設置其含量的不同是一個用戶控件 -用戶控件內用戶控件不從視圖模型
<Grid>
<local:MainControl></local:MainControl>
</Grid>
在MainControl,我使用的其他用戶控件 -
<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.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>
現在我能夠看到數據來自ViewModel,當我直接在MainWindow中使用TestHeader,但是當我在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>
這裏,整個含量的不同是在主窗口的網格。外部TestHeader正在填充數據,但是,Grid中的TestHeader不是。
更新
我得到了我曾經最愚蠢的錯誤 -
參見填充和高度均爲20沒有空間含量的不同。
這不是問題。查看更新。 – user2039445 2013-02-19 10:27:26