我正在创建自定义toolWindow并将其添加到我的userControl中。UserControl是自定义dockingWindows和toolWindows的一个元素。所以在我的mainWindow xaml中我有DataTemplate
<DataTemplate DataType="{x:Type viewModels:PropertyGridToolWindowViewModel}"> <views:PropertyGridToolWindowView/>
`</DataTemplate>`我正在设置包含所有toolWindows和DocumentWindows的toolWindows和DocumentWindows:
<ContentControl Content="{Binding}" x:Name="CustomContentControl"/>我的自定义toolWindow xaml代码如下所示:
<Grid>
<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Dock="Right">
<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Dock="Top" >
<Grid>
<Button Name="SaveBtn" Content=" Save " IsEnabled="{Binding SaveButtonIsEnabled}" Grid.Column="0" Command="{Binding SaveClickCommand}" CommandParameter="{Binding ElementName=PropertiesUserControl}"/>
<Button Name="EditBtn" Content=" Edit " Grid.Column="1" HorizontalAlignment="Stretch" Command="{Binding EditClickCommand}" IsEnabled="{Binding EditButtonIsEnabled}"/>
<Button Name="CancelBtn" Content=" Cancel " Grid.Column="2" HorizontalAlignment="Stretch" Command="{Binding CancelClickCommand}" IsEnabled="{Binding CancelButtonIsEnabled}"/>
</Grid>
</DockPanel>
<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Dock="Bottom">
<shared:PixelSnapper>
<propgrid:PropertyGrid SelectedObject="{Binding SelectedObject}">
</propgrid:PropertyGrid>
</shared:PixelSnapper>
</DockPanel>
</DockPanel>
</Grid>我的customUserControl toolWindows和documentWindows是:
<docking:DockSite x:Name="dockSite" viewModels:DockSiteViewModelBehavior.IsManaged="true" CanDocumentWindowsRaft="True" ItemContainerRetentionMode="Wrapped"
DocumentItemsSource="{Binding DocumentItems}" DocumentItemContainerStyle="{StaticResource DocumentItemStyle}"
ToolItemsSource="{Binding ToolItems}" ToolItemContainerStyle="{StaticResource ToolItemStyle}">
<docking:DockSite.AutoHideRightContainers>
<docking:ToolWindowContainer>
<views:PropertyGridToolWindow CanClose="False" HasOptions="False"/>
</docking:ToolWindowContainer>
</docking:DockSite.AutoHideRightContainers>
<docking:Workspace x:Name="Workspace>
<docking:TabbedMdiHost />
</docking:Workspace>
</docking:DockSite>如您所见,我在xaml中添加了toolWindow,它以正确的方式显示。但是我需要动态地创建这个toolWindow。这就是问题所在。当我动态创建相同的toolWindow时,它不是我的自定义toolWindow的停靠面板。我怎样才能解决这个问题?提前感谢
编辑我创建toolWindows的方式
var toolWindow = new PropertyGridToolWindowViewModel();
toolWindow.Title = "Another ToolWindow";
_toolItems.Add(toolWindow);问题是视图没有创建。但我不明白为什么..。
发布于 2013-11-04 14:47:58
我删除了这段代码:
<DataTemplate DataType="{x:Type viewModels:PropertyGridToolWindowViewModel}">
<views:PropertyGridToolWindowView/>
</DataTemplate>从我的mainWindowXaml。然后,我决定按如下方式创建我的窗口:
var toolWindow = new PropertyGridToolWindowView();
_toolItems.Add(toolWindow);在我的观点的构造函数中,我创建了我的viewModel,它解决了这个问题。
https://stackoverflow.com/questions/19710954
复制相似问题