Reputation: 11
I'm creating a new grid in NavigationViewItem for notifications. But I don't understand how to create a
< NavigationViewItem.Notification visible="True" Text="12" >
property to use.
I created the design but the text is assigned to all items. I would like to control the properties of notifications (Visible and Text)
How do I manage this? Any help would be appreciated!
<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>
Upvotes: 0
Views: 228
Reputation: 32785
Custom property in NavigationViewItem
The default NavigationViewItem
does not contain Notification
property. You could use TempateControl to custom NavigationViewItem
but it is complex. There is easy way implement it that process Visibility
with 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();
}
}
Model class
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; }
}
This is code sample that you could refer.
Upvotes: 1