Windows Phone 7.1、ListPicker FullModeItemTemplateバインディングテキスト
-
28-10-2019 - |
質問
リストピッカーのアイテムのフォントサイズを変更しようとしています。 FullModeItemTemplateを使用して、Fontsizeなどを変更できます。
問題は、テンプレート内のアイテムのテキストをバインドする方法がわからないことです
<DataTemplate x:Name="PickerFullModeItemTemplate">
<StackPanel Orientation="Horizontal" Margin="16 21 0 20" Background="Orange" Width="110" Height="110" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="{WHAT TO TYPE HERE?}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5" FontSize="36"/>
</StackPanel>
</DataTemplate>
このようなc#でitemsourceを設定することにより、リストピッカーを入力します
foreach (Item i in weight)
{
sourceInput.Add(i.name);
}
}
InputSelector.ItemsSource = sourceInput;
これにより、文字列のみが含まれているItemsourceリストが残り、各アイテムのテキストをバインドする方法がわかりません。 Itemsourceリストがこの形式であるときにそれを行う方法についてのいくつかの投稿を読みました
source.Add(new Cities() { Name = "Mexico", Country = "MX", Language = "Spanish" });
this.listPicker.ItemsSource = source;
そして、XAML部分はこのようなものです
<TextBlock Text="{Binding Name}"/>
どんな助けも大歓迎です:)
アップデート
SourceItemsへのバインディングのための正しいバインディングを見つけました。
<TextBlock Text="{Binding BindsDirectlyToSource=True}"/>
それが道のように見えます、そしてソースアイテムはテキストブロックにバインドされます
解決
タイプのオブジェクトを追加する必要があります Cities
あなたに sourceInput
コレクション。
タイピング Text="{Binding Name}"
正しい。
ほとんどの場合、都市のクラスは実装していません InotifyPropertyChanged インターフェース。 UI要素をバインドする名前やその他のプロパティを更新するたびに、UIに通知する必要があります。
他のヒント
<TextBlock Text="{Binding Name}"/>
クールですが、リストピッカーにはdisplaymemberpathプロパティもあります。
listpicker add:
displaymemberpath = "name"
所属していません StackOverflow