リストピッカーをフルスクリーンモードにしたい。しかし、それは私の問題ではありません。Windows Phone の [設定] ページにある "テーマの色" 選択リスト ピッカーとまったく同じように、データ バインディングを備えたリスト ピッカーが必要です。リストピッカーには、色で塗りつぶされた正方形と、色の名前が必要です。バインディングを使用して色名のリストを取得する方法は知っていますが、<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 が表示されておらず、色も表示されていません。私が間違っていることと、それを正しく行う方法を知りたいです。