Пользовательское свойство в NavigationViewItem - PullRequest
0 голосов
/ 14 октября 2019

Я создаю новую сетку в NavigationViewItem для уведомлений. Но я не понимаю, как создать свойство < NavigationViewItem.Notification visible="True" Text="12" > для использования.

Я создал дизайн, но текст назначен всем элементам. Я хотел бы контролировать свойства уведомлений (видимые и текстовые)

image

Как мне управлять этим? Любая помощь будет оценена!

<Grid Visibility="Visible" CornerRadius="5, 5, 5, 5" HorizontalAlignment="Right" Width="30" Background="#11FFFFFF" Opacity="1" Height="24" Margin="0,0,15,0">
 <TextBlock Text="17" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,0,1" Foreground="#FFC5C5C5"/>
</Grid>

1 Ответ

1 голос
/ 14 октября 2019

Пользовательское свойство в NavigationViewItem

Значение по умолчанию NavigationViewItem не содержит Notification свойство. Вы можете использовать TempateControl для пользовательских NavigationViewItem, но это сложно. Есть простой способ реализовать этот процесс Visibility с IValueConverter.

    <Grid
        Width="200"
        Height="24"
        Margin="0,0,15,0"
        HorizontalAlignment="Right"
        Background="#11FFFFFF"
        CornerRadius="5, 5, 5, 5"
        Opacity="1"
        Visibility="{Binding MessgeCount, Converter={StaticResource visibilityConverter}}"
        >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="3*" />
            <ColumnDefinition Width="1*" />
        </Grid.ColumnDefinitions>
        <TextBlock Text="{Binding Name}" />
        <TextBlock
            Grid.Column="1"
            Margin="0,0,0,1"
            HorizontalAlignment="Right"
            VerticalAlignment="Center"
            Foreground="#FFC5C5C5"
            Text="{Binding MessgeCount}"
            />
    </Grid>

VisibilityConverter

public class VisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        if ((int)value == 0)
        {
            return Visibility.Collapsed;
        }
        else
        {
            return Visibility.Visible;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}

Класс модели

public class Category : CategoryBase
{
    public string Name { get; set; }
    public string Tooltip { get; set; }
    public Symbol Glyph { get; set; }
    public bool IsEnabled { get; set; }
    public int MessgeCount { get; set; }
}

Это пример кода, который вы могли бы см .

...