我正在使用ReactiveUI
和MahApps.Metro
開始一個新項目。我遇到的第一個障礙是一個沒有完整顯示的觀點問題。我有一個Window
,在那Window
我有一個ViewModelViewHost
從RxUI庫。它是一個嵌套視圖模型的簡單容器。 ActiveItem綁定正確綁定到用戶控件的視圖模型,並且用戶控件中的Button
在屏幕上可見。ReactiveUI - 視圖不能正確呈現(或全部)
我期望看到的是一個Window
,暗灰色背景和中間的一個按鈕。我看到的是Window
的默認背景和中間的Button
。這個不對。如果我刪除按鈕,我看不到Window
,只有默認的背景。
看來ViewModelViewHost
只顯示用戶控件的實際內容,並不顧什麼不被認爲是真正的控制,如電網等
有沒有人碰到這種行爲之前?
<mah:MetroWindow x:Class="...MainWindow"
xmlns:mah="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:rx="clr-namespace:ReactiveUI;assembly=ReactiveUI"
WindowStartupLocation="CenterScreen"
ShowTitleBar="False"
ShowCloseButton="False"
ShowMaxRestoreButton="False"
ShowMinButton="False"
Height="768"
Width="1024">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<rx:ViewModelViewHost ViewModel="{Binding ActiveItem}" />
</Grid>
</mah:MetroWindow>
<UserControl x:Class="...NestedView"
Name="TheUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
TextOptions.TextHintingMode="Auto"
TextOptions.TextRenderingMode="Auto"
d:DesignHeight="768" d:DesignWidth="1024">
<Grid Background="DarkGray">
<Button Width="200" Height="100" />
</Grid>
</UserControl>
不幸的是沒有改變一件事。不管怎麼說,還是要謝謝你。 – BlackBox 2015-04-02 07:13:47
@BlackBox如果唯一的孩子是ViewModelViewHost - 我剛剛注意到那裏還有一個網格,我寫的會適用。除非你在窗口中添加其他東西,否則我會刪除網格並按照上面的方法進行操作,否則我會在有機會測試時更新答案。 – 2015-04-02 07:18:02
我剛剛從窗口中移除了網格,並按預期呈現了視圖。但是在用戶控件中,我應該想要一個帶有2列的網格,1帶有一個按鈕,另一個帶有'ViewModelViewHost',同樣的問題在第1列中重複出現。這怎麼能克服?在過去我曾經使用過Caliburn.Micro的內容控件,我從來沒有遇到過這樣的問題。 – BlackBox 2015-04-02 07:37:41