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

我的问题是我不知道如何将 Textblock 严格绑定到 Level String 数组并将矩形填充到颜色...我可能缺少一些简单的东西,但我似乎无法得到它.. .

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(列表、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 回答