【发布时间】:2017-04-18 13:58:18
【问题描述】:
我有一个这样的数据模板:
<!-- MULTI VIEW TEMPLATE -->
<DataTemplate x:Key="MultiViewTemplate" >
<Grid x:Name="MultiViewGrid" ShowGridLines="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ContentControl Content="{StaticResource BorderHwnd1}" Grid.Column="0" Grid.Row="0" x:Name="MultiViewBorder1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseDoubleClick="MultiViewBorder1_MouseDoubleClick"/>
<ContentControl Content="{StaticResource BorderHwnd2}" Grid.Column="1" Grid.Row="0" x:Name="MultiViewBorder2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseDoubleClick="MultiViewBorder2_MouseDoubleClick"/>
<ContentControl Content="{StaticResource BorderHwnd3}" Grid.Column="0" Grid.Row="1" x:Name="MultiViewBorder3" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseDoubleClick="MultiViewBorder3_MouseDoubleClick"/>
<ContentControl Content="{StaticResource BorderHwnd4}" Grid.Column="1" Grid.Row="1" x:Name="MultiViewBorder4" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseDoubleClick="MultiViewBorder4_MouseDoubleClick"/>
</Grid>
</DataTemplate>
而 BorderHwnd1 是这样的:
<Border x:Key="BorderHwnd1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderBrush="Transparent" BorderThickness="0" Background="Transparent" >
<Image Margin="1" Source="/MyProject;component/Images/No_image_available.png" />
</Border>
我的问题是 MultiViewBorder1_MouseDoubleClick 事件在我删除并以编程方式将新子项分配给 MultiViewBorder1 后不起作用。最初 MultiViewBorder1.Child 是一个图像 (No_image_available.png)。在我的代码中,我删除了图像并分配了一个新的孩子。这个新孩子是HwndHost。
我的错误在哪里?任何帮助表示赞赏!
【问题讨论】:
-
1. “MultiViewBorder1_MouseDoubleClick 事件不起作用”——“不起作用”到底是什么意思?例外?什么?请向我们展示处理程序并解释症状。 2. “在我以编程方式删除并分配一个新子项到 MultiViewBorder1 之后”——这句话几乎可以表示任何含义。向我们展示代码。 3. 您应该绑定 Content 而不是以编程方式设置它。
-
一般来说,遵循这种形式是错误的:"这里有一些代码。没关系。其他一些代码中存在错误,我不会向您展示,但这里有一个令人难以置信的模糊地描述了我在写这篇文章时对自己想要完成的事情的感受。怎么了?”
-
MultiViewBorder1_MouseDoubleClick 事件不起作用 = MouseDoubleClick 事件未触发` private void onMouseDoubleClick(object sender, RoutedEventArgs e) { MessageBox.Show("Double Click"); }`
标签: c# .net wpf visual-studio