2

我正在寻找与 ModernUI WPF 的 ModernTab 一起使用的单击事件或类似事件。

我目前正在使用 ModernUI WPF ( http://mui.codeplex.com/ ),并且我正在尝试使用 ModernTab 控件作为员工列表,然后我将单击它并在源页面中打开他们的详细信息。

问题是,我将在运行时从数据库创建员工列表,这意味着我需要手动添加链接。因此,我需要能够从选项卡中挂钩一些单击事件,以便我可以找出要显示的用户 - 但我没有看到可以工作的属性。我能看到的最接近的是 ModernTab 父控件具有单击事件,但它们仅在我单击控件的空白部分时才会注册。

我唯一能想到的另一件事是在运行时为每个员工生成一个自定义面板,并在我创建列表时将其设置为 Source 属性,如果可能的话,我宁愿不这样做。

这是我的面板:

<UserControl x:Class="Schedule.Pages.EditEmployees"
         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:mui="http://firstfloorsoftware.com/ModernUI"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
<Grid Style="{StaticResource ContentRoot}">
    <mui:ModernTab Layout="List" Name="employeeTabList" >
        <mui:ModernTab.Links >
            <mui:Link DisplayName="Create New..." Source="/Pages/EditEmployeeDetail.xaml" />
        </mui:ModernTab.Links>
    </mui:ModernTab>
</Grid>

任何帮助表示赞赏!

4

2 回答 2

0

创建链接时,向代表每个员工的 Uri 添加一个片段。然后为 EmployeeDetail 用户控件实现 IContent 接口(特别是 OnFragmentNavigation 以使用片段初始化数据)。示例代码在这里 -

http://mui.codeplex.com/discussions/455846

于 2013-10-19T15:19:15.950 回答
0

这只是“劫持”ModernTab 点击的一个例子。在这里,您可以强制将内容加载到顶部框架中,例如:

处理SelectedSourceChangedModernTab 的事件:

employeeTabList.SelectedSourceChanged += employeeTabList_SelectedSourceChanged;

void employeeTabList_SelectedSourceChanged(object sender, SourceEventArgs e)
{
    if (e.Source.OriginalString.EndsWith("EditEmployeeDetail.xaml"))
    {
        var url = "/Pages/EditEmployeeDetail.xaml";
        var bb = new BBCodeBlock();
        bb.LinkNavigator.Navigate(new Uri(url, UriKind.Relative), this, NavigationHelper.FrameTop);
        // You may want to set some property in that page's ViewModel, for example, indicating the selected User ID.
    }
}
于 2015-06-01T17:59:06.070 回答