0

静的リソース(コードビハインドに追加)からコンボボックスをバインドし、各アイテムの横に画像を追加しようとしています。私がこれまでに持っている最善の解決策は次のとおりです。

            <ComboBox x:Name="cmbGroup"
          Width="150" Height="32" ItemsSource="{StaticResource Groups}" >

                <ComboBox.ItemTemplate>

                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                            </Grid.ColumnDefinitions>
                            <Image Source="Question.jpg" Height="30" MouseEnter="Image_MouseEnter" ></Image>
                            <ComboBoxItem Content="{Binding Source={StaticResource Groups}}" Grid.Column="1"/>

                        </Grid>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>

これは機能していませんが、各アイテムの画像を見ることができますが、代わりにテキストを取得しました。「Systems.Collection.GenericList」を取得しました。これを解決する方法はありますか?ありがとう

4

2 に答える 2

0

あなたの「グループ」はリストだと思いますか?

したがって、デフォルトで画像とオブジェクトグループを表示するようにテンプレートを構成します。したがって、グループオブジェクトが表示されます。つまり、グループのtoString()であり、リストの場合は「Systems.Collection.GenericList」です。

私の推測では、あなたは悪いことをバインドしますか?リストのアイテムをバインドする必要があります。これには、より適切なtoString()バージョンが必要です。

グループリストにいくつかのユーザーアイテムがあるとします。したがって、バインディングは次のようになります。

  <ComboBox x:Name="cmbGroup"
          Width="150" Height="32" ItemsSource="{StaticResource Groups}" >

                <ComboBox.ItemTemplate>

                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                            </Grid.ColumnDefinitions>
                            <Image Source="Question.jpg" Height="30" MouseEnter="Image_MouseEnter" ></Image>
                            <ComboBoxItem Content="{Binding Source={StaticResource Users}}" Grid.Column="1"/>

                        </Grid>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>

それが役に立てば幸い

于 2013-02-15T09:53:26.417 に答える
0

データテンプレート内でBindingを使用するコントロールがある場合、それはItemsSourceコレクションの各アイテムにバインドされます。また、文字列のみを表示する場合は、ComboboxItemの代わりにTextBlockコントロールを使用できます。したがって、コードが次のようになっている場合:

            <ComboBox.ItemTemplate>

                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <Image Source="Question.jpg" Height="30" MouseEnter="Image_MouseEnter" ></Image>
                        <TextBlock Text="{Binding}" Grid.Column="1"/>

                    </Grid>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>

探している効果が得られると思います。お役に立てれば。

于 2013-02-16T10:39:56.013 に答える