【发布时间】:2010-09-22 11:17:08
【问题描述】:
我遇到了嵌套 StackPanel 的问题。如果我在下面的代码中定义 StackPanels, 按钮绑定到命令(MVVM 和命令模式),但不会对按钮单击做出反应(不调用命令函数)。当我将 stackPanel4 放在第二个位置(stackPanel3 下方)时,一切正常。当我将 stackPanel4 移动到最后一个位置时(我有更多的 StackPanel,然后在父 StackPanel 内有两个),按钮未绑定并且命令函数未调用。这种行为的原因可能是什么? 如果我为 stackPanel4 设置 DataContext 就可以了。
<StackPanel DataContext="{StaticResource vmUserMasterData}" Grid.Column="1" Height="320" HorizontalAlignment="Left" Margin="4,6,4,0" Name="stackPanel1" VerticalAlignment="Top" Width="491">
<StackPanel Height="40" Name="stackPanel4" Orientation="Horizontal" Width="440">
<Button Content="Update User Data" Name="button1" Height="23" Width="440" Command="{Binding Path=UpdateDataCommand}"/>
</StackPanel>
<StackPanel Height="31" Name="stackPanel3" Orientation="Horizontal" Width="440">
<sdk:Label Content="Username" Height="28" Name="label2" Width="74" />
<TextBox Height="23" Name="textBox2" Width="365" Text="{Binding Username, Mode=OneWay}" />
</StackPanel>
</StackPanel>
【问题讨论】:
-
当您说在 StackPanel3 下方时,您的意思是嵌套在 StackPanl3 的结束标记内还是物理上位于其下方?
-
我的意思是在 StackPanel3 的结束标签下方。
标签: silverlight data-binding inheritance