0

パノラマコントロールがあり、ヘッダーテンプレートを作成して、その中にリストピッカーを追加しています。(ソーシャルアカウントを選択するための人々のハブのように)

<DataTemplate x:Key="PanoramaItemHeaderTemplate">
     <ContentPresenter>
          <StackPanel Height="129">
               <TextBlock Text="{Binding}" FontSize="72" Margin="0,7,0,0" />
               <toolkit:ListPicker x:Name="listPick" Margin="0,-21,0,0" BorderThickness="0">
                     <toolkit:ListPickerItem Content="twitter"></toolkit:ListPickerItem>
               </toolkit:ListPicker>                    
          </StackPanel>
     </ContentPresenter>
</DataTemplate>

パノラマコントロールはMainPage.xamlファイル内にあり、コードビハインドからリストピッカーにアクセスして、リストピッカーにデータを入力し、選択イベントを処理できるようにしたいと考えています。

これを行う方法がわかりません。x:nameプロパティを、背後のMainPageコードでアクセスできないリストピッカーに追加してみました。

これにアプローチする方法についてのアイデアは大歓迎です、ありがとう!

4

3 に答える 3

1

あなたが今持っているものから、あなたが望むことをするための最も速い方法は、ビジュアルツリーをトラバースすることです

実装については、こちらを参照してください。

DataTemplate を使用してリストボックス内の特定の項目にアクセスするには?

于 2012-07-14T17:27:33.753 に答える
0

明確ではないため、x:NameでListPickerにアクセスすることはできません。PanoramaのPanoramaItemごとにListPickerが生成されます。それで最初の質問は、それは本当にあなたがやりたいと思っているのかということです。その場合は、バインディング(ItemSource)を使用してデータを入力する必要があります

于 2012-07-14T14:52:48.400 に答える
0

別のリソース内の要素にアクセスできます。次の例を検討してください。

<Grid Name="myGrid">
<StackPanel x:Name="stack1">
<TextBlock x:Name="abc"/>
</StackPanel>
</Grid>

Gridデフォルトでは、コード内の myGrid にのみアクセスできます。への参照を取得するには、次のStackPanelようにします。

StackPanel myStack=myGrid.FindName("stack1") as Stackpanel;

その後、次への参照を取得できますTextBlock

TextBlock myTextBlock=myStack.FindName("abc") as TextBlock;

その後、必要に応じて myTextBlock を変更できます。あなたのケースで同じテクニックを適用することができ、それはうまくいきます。それが役立つことを願っています:)。

于 2012-07-14T17:35:07.697 に答える