0

私はwpfが初めてで、簡単な質問であることを願っています。

グループ化されたアイテムを表示するための簡単なテンプレートを作成しました

現在、アイテムの1つをクリックすると、ItemsClickが呼び出されます(予想どおり)

    private void itemGridView_ItemClick(object sender, ItemClickEventArgs e)
    {

        MyCustomClass selectedItem = (MyCustomClass)e.ClickedItem;
        GridView g = (GridView)sender;

e.ClickedItem と送信者からのグリッドをキャストすることで、クラス オブジェクトのコピーを取得できます。しかし、たとえば testName TextBlock のテキストを変更したい場合など、テンプレートに追加したカスタム項目への参照を取得する方法がわかりません。

テンプレート:

<DataTemplate x:Key="MyTestTemplate">
            <Grid HorizontalAlignment="Left"  >
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
                <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Grid.RowSpan="3">
                    <Image Source="{Binding ThumbnailUrl}" Stretch="Fill" Width="175" Height="175" />
                </Border>
                <Image Source="{Binding MyCustomImage}" Height="30" Width="30" Grid.RowSpan="3" Margin="0,0,0,30"/>
                <Grid x:Name="ItemDetails" VerticalAlignment="Bottom"  Height="75" Margin="0,0,0,2" Background="{StaticResource ListViewItemOverlayBackgroundThemeBrush}">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="40"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <TextBlock x:Name="testName" Text="{Binding Name}"  Grid.Row="0" Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" MaxWidth="100" MaxHeight="80" TextWrapping="Wrap" HorizontalAlignment="Left" Style="{StaticResource TitleTextStyle}"  Margin="5,0,5,0"/>
                    <TextBlock Text="{Binding Address}" Grid.Row="0" HorizontalAlignment="Right" Foreground="{StaticResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource 

CaptionTextStyle}" TextWrapping="NoWrap" Margin="5,0,5,0" />
                     </Grid>
                </Grid>
            </DataTemplate>


<GridView
            x:Name="itemGridView"
            AutomationProperties.AutomationId="ItemGridView"
            AutomationProperties.Name="Grouped Items"
            Grid.RowSpan="2"
            Padding="116,137,40,46"
            ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
            ItemTemplate="{StaticResource MyTestTemplate}"
            SelectionMode="None"
            IsSwipeEnabled="True"
            IsItemClickEnabled="True" 
            RightTapped="itemGridView_RightTapped" 
            ItemClick="itemGridView_ItemClick" SelectionChanged="itemGridView_SelectionChanged">
            <GridView.ItemsPanel>
                <ItemsPanelTemplate>                        
                    <VirtualizingStackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </GridView.ItemsPanel>
            <GridView.GroupStyle>
                <GroupStyle>
                    <GroupStyle.HeaderTemplate>
                        <DataTemplate>
                            <Grid Margin="1,0,0,6">
                                <Button
                                    AutomationProperties.Name="Group Title"
                                >
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="{Binding state}"/>
                                     </StackPanel>
                                </Button>
                            </Grid>
                        </DataTemplate>
                    </GroupStyle.HeaderTemplate>
                    <GroupStyle.Panel>
                        <ItemsPanelTemplate>
                            <VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,80,0"/>
                        </ItemsPanelTemplate>
                    </GroupStyle.Panel>
                </GroupStyle>
            </GridView.GroupStyle>
        </GridView>
4

1 に答える 1

0

わかりました、msdn で答えを見つけました。

ここのリンクhttp://msdn.microsoft.com/en-us/library/bb613579.aspx

基本的な手順

選択したアイテムを取得し (私はクリックに応答していたので、この情報は簡単でした)、そのアイテム内で ContentPresenter を見つけ、その ContentPresenter に設定されている DataTemplate で FindName を呼び出します。

于 2013-06-20T20:54:12.267 に答える