从mui链接(WPF)

时间:2017-03-24 15:02:59

标签: c# wpf modern-ui

我的项目遇到了一些问题。我有一个moderntab,我通过请求填充链接到数据库。我的请求的结果返回一个字符串列表,该列表将是我的moderntab链接的显示名称。我在后面的代码中创建了所有链接,我希望当我点击链接时,usercontrol的内容会在displayname的功能中发生变化。

目前,我知道如何在检测到我更改源时使用displayname。但我希望所有链接都具有相同的Source,并且usercontrol的内容会根据所选链接的显示名称进行更改。

那是我的moderntab的xaml代码:

<Grid Style="{StaticResource ContentRoot}">
    <mui:ModernTab Layout="List" Name="listEcole" SelectedSourceChanged="listEcole_SelectedSourceChanged"/>
</Grid>

这就是背后的代码:

public ListEcoles()
{
    InitializeComponent();
    List<string> listEcoles = MainWindow._RE.ListEcoles();
    foreach (string nomEcole in listEcoles)
        listEcole.Links.Add(new Link() { DisplayName = nomEcole, Source = new Uri("/Controles/EcoleControl.xaml", UriKind.Relative) });
}

private void listEcole_SelectedSourceChanged(object sender, SourceEventArgs e)
{
    var selectedLink = listEcole.Links.FirstOrDefault(x => x.Source == listEcole.SelectedSource);
    if (selectedLink != null)
    {
        string selectedDisplayName = selectedLink.DisplayName;
        MessageBox.Show(selectedDisplayName);
    }
}

它不起作用,因为我的链接的每个来源都是相同的,所以事件永远不会进行。

有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

然后再处理PreviewMouseLeftButtonUp之类的其他事件。您可以使用帮助方法在可视化树中查找ListBoxItem,然后使用Link的{​​{1}}属性获取对应ListBoxItem对象的引用。

试试这个:

DataContext