首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义toolWindow没有显示它的上下文

自定义toolWindow没有显示它的上下文
EN

Stack Overflow用户
提问于 2013-10-31 15:44:34
回答 1查看 186关注 0票数 0

我正在创建自定义toolWindow并将其添加到我的userControl中。UserControl是自定义dockingWindows和toolWindows的一个元素。所以在我的mainWindow xaml中我有DataTemplate

<DataTemplate DataType="{x:Type viewModels:PropertyGridToolWindowViewModel}"> <views:PropertyGridToolWindowView/>

代码语言:javascript
复制
         `</DataTemplate>`

我正在设置包含所有toolWindows和DocumentWindows的toolWindows和DocumentWindows:

代码语言:javascript
复制
<ContentControl Content="{Binding}" x:Name="CustomContentControl"/>

我的自定义toolWindow xaml代码如下所示:

代码语言:javascript
复制
<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是:

代码语言:javascript
复制
  <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的方式

代码语言:javascript
复制
var toolWindow = new PropertyGridToolWindowViewModel();
toolWindow.Title = "Another ToolWindow";
_toolItems.Add(toolWindow);

问题是视图没有创建。但我不明白为什么..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-04 14:47:58

我删除了这段代码:

代码语言:javascript
复制
<DataTemplate DataType="{x:Type viewModels:PropertyGridToolWindowViewModel}"> 
<views:PropertyGridToolWindowView/>
</DataTemplate>

从我的mainWindowXaml。然后,我决定按如下方式创建我的窗口:

代码语言:javascript
复制
var toolWindow = new PropertyGridToolWindowView();
_toolItems.Add(toolWindow);

在我的观点的构造函数中,我创建了我的viewModel,它解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19710954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档