我正在寻找一个与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>
任何帮助表示赞赏!
答案 0 :(得分:0)
在创建链接时向代表每个员工的Uri添加一个片段。然后为EmployeeDetail用户控件实现IContent接口(特别是OnFragmentNavigation以使用片段初始化数据)。示例代码 -
答案 1 :(得分:0)
这只是“劫持”ModernTab点击的一个例子。在这里,您可以强制在顶部框架中加载内容,例如:
处理ModernTab的SelectedSourceChanged
事件:
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.
}
}