отключить кнопку mui: ссылка в mui: LinkGroup.Links - PullRequest
0 голосов
/ 12 марта 2019

У меня есть группа кнопок mui: LinkGroup , которая содержит четыре кнопки mui: Link , которую я отключаю и оставляю серым.

Вот мой код с Xaml и C #

 <mui:LinkGroup DisplayName="{x:Static p:Resources.Link_Transport}" x:Name="transport">
            <mui:LinkGroup.Links>
                <mui:Link DisplayName="{x:Static p:Resources.Link_Moyens_Transport}" Source="/Pages/Transports/ListTransport.xaml" />
                <mui:Link DisplayName="{x:Static p:Resources.Link_Voyages}" Source="/Pages/Voyages/ListVoyage.xaml" />
                <mui:Link DisplayName="{x:Static p:Resources.Link_Allottement}" Source="/Pages/Allottement/EffecterSiege.xaml" />
                <mui:Link DisplayName="{x:Static p:Resources.Link_Etat_Voyages}"  Source="/Pages/Transports/TransportTravels.xaml" />
            </mui:LinkGroup.Links>
        </mui:LinkGroup>

Я не люблю полностью удалять кнопку или оставлять ее в комментариях и заранее благодарю за помощь:)

1 Ответ

0 голосов
/ 12 марта 2019

A Link нельзя отключить напрямую. Что вы можете сделать, это найти соответствующий ListViewItem в визуальном дереве и отключить его. Вы должны сделать это программно:

public partial class MainWindow : ModernWindow
{
    public MainWindow()
    {
        InitializeComponent();
        this.Loaded += (s, e) => 
        {
            ModernMenu mm = FindVisualChildren<ModernMenu>(this).FirstOrDefault();
            if(mm != null)
            {
                ListBox lb = FindVisualChildren<ListBox>(mm)?.ElementAt(1);
                if (lb != null)
                {
                    ListBoxItem link = FindVisualChildren<ListBoxItem>(lb).FirstOrDefault(x => x.Content == theLink);
                    if (link != null)
                        link.IsEnabled = false;
                }
            }
        };
    }
}

Назовите ссылку, которую вы хотите отобразить, используя атрибут x:Name в XAML:

<mui:Link x:Name="theLink" DisplayName="..." ... />
...