0

オンラインの場合は人のリストと緑色のアイコンを表示する必要があるものを実装しようとしています。これらの人々は、いくつかのカテゴリに分類されます。リストを表示するために expanderview ツールキット コントロールを使用しています。では、アイコン画像を動的に表示するように設定するにはどうすればよいですか? 私はこのようなことを試しましたが、うまくいきませんでした。

<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 は整数プロパティです。

4

1 に答える 1

1

まず、IsFriendOnline プロパティの値を必要な Visibility 列挙型に変換するために、コンバーターを使用する必要があります。

WPFには「BooleanToVisibilityConverter」が組み込まれているため、IsFriendOnlineをブール値に変更できる場合(とにかくもう少し理にかなっているように聞こえます)、このルートをたどります...プロパティが必須である場合整数の場合、難しくない独自のコンバーターをロールする必要があります。

コンバーターがある場合、構文は次のようになります (以下のコードでは、IsFriendOnline がブール値であると想定しています)...

<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>

お役に立てれば...

于 2013-02-18T16:35:04.013 に答える