【发布时间】:2015-05-04 09:09:35
【问题描述】:
我目前在我的视图模型中有这个方法,当用户点击网格行时触发:
public ICommand EmailPopUpCmd { get; set; }
private void EmailPopUp(object sender) {
//ToDo: pdf viewer pop up
var test = sender;
var email = new EmailView { DataContext = new MailVM() };
email.Visibility = Visibility.Visible;
}
我要显示的用户控件如下所示:
<UserControl x:Class="Sybrin.UI.MailViewer.Views.EmailView"
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"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:fixed="clr-namespace:Telerik.Windows.Documents.Fixed;assembly=Telerik.Windows.Controls.FixedDocumentViewers"
xmlns:converters="clr-namespace:Telerik.Windows.Documents.Converters;assembly=Telerik.Windows.Controls.FixedDocumentViewers"
xmlns:local="clr-namespace:Sybrin.UI.MailViewer.Helpers"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
DataContext="{Binding}">
<Grid>
<Grid.Resources>
<local:BoolToDisplayConverter x:Key="BoolToDisplayConverter"/>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="0.25*" />
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<telerik:RadToolBar DataContext="{Binding ElementName=pdfViewer, Path=CommandDescriptors}">
<telerik:RadToolBar.Resources>
<converters:FixedDocumentViewerModeConverter x:Key="ModeConverter"/>
</telerik:RadToolBar.Resources>
<telerik:RadToggleButton IsChecked="{Binding FixedDocumentViewer.Mode, Mode=TwoWay, Converter={StaticResource ModeConverter}, ConverterParameter=Pan}"
Margin="2"
Padding="0"
IsBackgroundVisible="False"
HorizontalAlignment="Left"
VerticalAlignment="Stretch"
>
<ToolTipService.ToolTip>
<TextBlock Text="Pan" />
</ToolTipService.ToolTip>
<Image Source="pack://application:,,,/Telerik.Windows.Controls.FixedDocumentViewers;component/Images/hand-free.png"
Stretch="None" />
</telerik:RadToggleButton>
<telerik:RadToggleButton IsChecked="{Binding FixedDocumentViewer.Mode, Mode=TwoWay, Converter={StaticResource ModeConverter}, ConverterParameter=TextSelection}"
Margin="2" Padding="0"
IsBackgroundVisible="False"
HorizontalAlignment="Left"
VerticalAlignment="Stretch">
<ToolTipService.ToolTip>
<TextBlock Text="Text Selection" />
</ToolTipService.ToolTip>
<Image Source="pack://application:,,,/Telerik.Windows.Controls.FixedDocumentViewers;component/Images/text-selection.png"
Stretch="None" />
</telerik:RadToggleButton>
</telerik:RadToolBar>
<telerik:RadPdfViewer x:Name="pdfEmailViewer"
Grid.Row="2"
DocumentSource="Sybrin.UI.MailViewer;Resources/TestPDF.pdf"/>
</Grid>
现在上述方法不显示我的用户控件。有什么想法为什么不呢?
【问题讨论】:
-
你想在哪里显示这个用户控件?
-
像一个弹出窗口(几乎像一个消息框)
-
您只是在创建用户控件的实例并切换可见性。我看不到它被添加到任何地方的视图中。
-
如何将它添加到视图中?
标签: c# wpf xaml mvvm user-controls