0

リストピッカーで項目のフォント サイズを変更しようとしています。フォントサイズなどを変更できるように fullmodeitemtemplate を使用します。

問題は、テンプレート内のアイテムのテキストをバインドする方法がわからないことです

<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}"/>

どんな助けでも大歓迎です:)

アップデート

ソースアイテムにバインドするための正しいバインディングが見つかりました。

<TextBlock Text="{Binding BindsDirectlyToSource=True}"/>

それが進むべき道のように見え、ソースアイテムがテキストブロックにバインドされます

4

2 に答える 2

1

CitiesタイプのオブジェクトをsourceInputコレクションに追加する必要があります。

タイピングText="{Binding Name}"は正しいです。

ほとんどの場合、Cities クラスはINotifyPropertyChangedインターフェイスを実装していません。UI 要素をバインドした Name およびその他のプロパティを更新するたびに、UI に通知する必要があります。

于 2011-09-10T20:29:49.193 に答える