我希望列表选择器处于全屏模式。但这不是我的问题。我想要具有数据绑定的列表选择器,与 Windows Phone 设置页面中的“主题颜色”选择列表选择器完全相同。listpicker 应该有一个带有颜色填充的正方形和颜色名称。我知道如何使用绑定来获得颜色名称列表,但是<Rectangle>
里面的标签<DataTemplate>
不起作用。
这是 Listpicker 的 XAML
<toolkit:ListPicker x:Name="lpkColor" Grid.Column="1" ExpansionMode="FullScreenOnly" Margin="8,12,-8,20" FullModeHeader="Select Color" Header="Color">
<toolkit:ListPicker.FullModeItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Rectangle Height="50" Width="50" VerticalAlignment="Center" Fill="{Binding color}" Margin="5,30,20,20"></Rectangle>
<TextBlock Text="{Binding ColorName}" VerticalAlignment="Center" FontSize="40"></TextBlock>
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>
后面的代码如下所示:
public class PickerObject
{
public string ColorName { get; set; }
public Color color{get;set;}
public PickerObject(string cn, Color c)
{
ColorName = cn;
color = c;
}
}
在我的 MainPage 类中
List<PickerObject> MyColors = new List<PickerObject>();
在我的构造函数中,我有:
MyColors = new List<PickerObject>();
MyColors.Add(new PickerObject("white",Colors.White));
MyColors.Add(new PickerObject("black", Colors.Black));
MyColors.Add(new PickerObject("blue", Colors.Blue));
MyColors.Add(new PickerObject("yellow", Colors.Yellow));
MyColors.Add(new PickerObject("red", Colors.Red));
lpkColor.ItemsSource = MyColors ;
但是 Listpicker 中没有显示 Rectangle,也没有显示颜色。我想知道我做错了什么,以及如何正确地做。