C# 在expanderview中动态设置图像的可见性
我正在尝试实现一些东西,我需要显示人员列表和一个绿色图标,如果他们在线的话。这些人按某些类别分组。我正在使用expanderview工具包控件显示列表。那么,如何将图标图像设置为动态可见?我试过这样的东西,但没用C# 在expanderview中动态设置图像的可见性,c#,xaml,windows-phone-8,toolkit,C#,Xaml,Windows Phone 8,Toolkit,我正在尝试实现一些东西,我需要显示人员列表和一个绿色图标,如果他们在线的话。这些人按某些类别分组。我正在使用expanderview工具包控件显示列表。那么,如何将图标图像设置为动态可见?我试过这样的东西,但没用 <DataTemplate x:Key="groupsItemTemplate"> <StackPanel Orientation="Horizontal" Margin="30,5,0,0""> <
<DataTemplate x:Key="groupsItemTemplate">
<StackPanel Orientation="Horizontal" Margin="30,5,0,0"">
<Image Height="30" Width="30" Source="/Assets/Online.png" Margin="10,5,0,0" Visibility="{Binding IsFriendOnline}"></Image>
<TextBlock TextWrapping="NoWrap" FontFamily="Segoe WP Light" FontSize="24" Margin="8,0,0,0" VerticalAlignment="Center" HorizontalAlignment="left" Height="auto" Width="300" Text="{Binding FriendName}"></TextBlock>
</StackPanel>
</DataTemplate>
首先,需要使用转换器将IsFriendOnline属性的值转换为所需的可见性枚举
WPF内置了一个“BooleanToVisibilityConverter”,因此如果您能够将iFriendOnline更改为布尔值(听起来似乎更有意义),我会走这条路。。。如果属性必须是整数,那么您需要滚动自己的转换器,这并不困难
当您有一个转换器时,语法看起来像这样(我下面的代码假设iFriendOnline是一个布尔值)
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<DataTemplate x:Key="groupsItemTemplate">
<StackPanel Orientation="Horizontal" Margin="30,5,0,0"">
<Image Height="30" Width="30" Source="/Assets/Online.png" Margin="10,5,0,0" Visibility="{Binding IsFriendOnline, Converter={StaticResource BooleanToVisibilityConverter}}"></Image>
<TextBlock TextWrapping="NoWrap" FontFamily="Segoe WP Light" FontSize="24" Margin="8,0,0,0" VerticalAlignment="Center" HorizontalAlignment="left" Height="auto" Width="300" Text="{Binding FriendName}"></TextBlock>
</StackPanel>
</DataTemplate>