ContentPresenter をツールバーに配置するのに苦労しています。ビューモデルのDashboardViewModelを備えたUserControlのDashboardViewがあります。私の ContentPresenter は次のように設定されています。
UserControl.Resources には、次のものがあります。
<DataTemplate DataType="{x:Type DashboardVM:DashboardViewModel}">
<Dashboard:DashboardView />
</DataTemplate>
そしてツールバーで:
<ToolBarTray Margin="0" DockPanel.Dock="Top">
<ToolBar Band="0" BanIndex="0">
<--! other stuff -->
<ToolBar Band="0" BandIndex="1" MinWidth="500" ToolBarTray.IsLocked="True">
<ContentPresenter Content="{Binding Path=DashboardViewModel}" />
</ToolBar>
</ToolBarTray>
実行時に ContentPresenter は表示されません。もう一方のツールバーはそうです。
ContentPresenter をツールバーの外側のグリッドに配置しましたが、問題なく表示されます。それはツールバーの何かですが、何がわかりません。
更新: 私はまた、次のように ContentPresenter を MenuItem に配置しようとしました:
<ToolBar Band="0" BandIndex="1">
<MenuItem>
<MenuItem.Header>
<ContentPresenter Content="{Binding Path=DashboardViewModel}"/>
</MenuItem.Header>
</MenuItem>
</ToolBar>
まだ姿を現さない。
より詳しい情報:
ダッシュボード ビュー:
<UserControl x:Class="Wsi.Common.View.Dashboard.DashboardView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Dashboard="clr-namespace:Wsi.Common.ViewModel.Dashboard"
xmlns:view="clr-namespace:Wsi.Common.View.Dashboard"
MinWidth="500"
MinHeight="30"
MaxHeight="70">
<UserControl.Resources>
<DataTemplate DataType="{x:Type Dashboard:DashboardItemViewModel}">
<view:DashboardItemView />
</DataTemplate>
</UserControl.Resources>
<StackPanel MaxHeight="70" Orientation="Horizontal">
<ContentPresenter x:Name="fileSystemDashboardItem" Content="{Binding Path=FileSystemDashboardItemViewModel}" />
<ContentPresenter x:Name="spreadHealthDashboardItem" Content="{Binding Path=SpreadHealthDashboardItemViewModel}" />
<ContentPresenter x:Name="spreadStatsDashboardItem" Content="{Binding Path=SpreadStatsDashboardItemViewModel}" />
<ContentPresenter x:Name="acquisitionStatsDashboardItem" Content="{Binding Path=AcquisitionStatsDashboardItemViewModel}" />
<ContentPresenter x:Name="backhaulHealthDashboardItem" Content="{Binding Path=BackhaulHealthDashboardItemViewModel}" />
<ContentPresenter x:Name="serverHealthDashboardItem" Content="{Binding Path=ServerHealthDashboardItemViewModel}" />
</StackPanel>
DashboardViewModel は、上記のようにサブビューモデルのプロパティを単純に保持します。設定;}
前に述べたように、これは ToolBarTray の上の View で連続して美しく機能しました。
ティア!
ジャネン