0

各レベルの横に色付きの四角形がある、レベルのリストを含む ListPicker コントロールを作成しようとしています。これは私が持っているものです:

<toolkit:ListPicker Grid.Row="1"
                    x:Name="LevelList"
                    Header="Level"
                    ItemCountThreshold="0"
                    FontFamily="Segoe WP Light">
  <toolkit:ListPicker.ItemTemplate>
    <DataTemplate>
      <StackPanel Orientation="Horizontal">
        <Rectangle Fill="{Binding}"
                   Width="43"
                   Height="43" />
        <TextBlock Text="{Binding}"
                   Margin="12 0 0 0" />
      </StackPanel>
    </DataTemplate>
  </toolkit:ListPicker.ItemTemplate>
  <toolkit:ListPicker.FullModeItemTemplate>
    <DataTemplate>
      <StackPanel Orientation="Horizontal"
                  Margin="16 21 0 20">
        <Rectangle Fill="{Binding}"
                   Width="43"
                   Height="43" />
        <TextBlock Text="{Binding}"
                   Margin="16 0 0 0"
                   FontSize="43"
                   FontFamily="{StaticResource PhoneFontFamilyLight}" />
      </StackPanel>
    </DataTemplate>
  </toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>

そしてC#の部分では、私は持っています

    String[] Level= { "E1", "E2", "E3", "E4", "E5"};
    String[] colors = { "#FFE5AD1B", "#FF0050EF", "#FFE51400", "#FF008A00", "#FFAA00FF" };

    public TolonPk()
    {
        InitializeComponent(); 
        this.listaNivel.ItemsSource = Level;
        this.listaNivel.ItemsSource = colors;
    }

私の問題は、テキストブロックを厳密にレベル文字列配列にバインドし、四角形を色に塗りつぶす方法がわからないことです...おそらく単純なものが欠けていますが、それを取得できないようです.. .

4

1 に答える 1

0

toolkit:ListPickerが他のWPF ItemsControlサブクラスのようにItemsSourceを使用する場合は、同じリストにLevel文字列とColor文字列の両方を含める必要があります。

レベルの文字列と色の文字列を含む小さな構造体/クラスを作成します。

public struct LevelAndColor
{
    public String Level { get; set; }
    public String Color { get; set; }
}

いくつかのIEnumerable(List、ObservableCollectionなど)を作成し、レベルと色のペアのインスタンスを入力します。

バインディングでは、次のようにバインドします。

<StackPanel Orientation="Horizontal">
    <Rectangle Fill="{Binding Color}" Width="43" Height="43"/>
    <TextBlock Text="{Binding Level}" Margin="12 0 0 0"/>
</StackPanel>
于 2013-01-21T21:56:33.293 に答える