0

私は ItemsControl と DataTemplate を使用して簡単なサンプルを作成しました。テキストブロックで C# コードを使用して値をバインドしたいのですが、コード ビハインド ファイルでテキストブロック名とデータテンプレート名を取得できませんでした。理由を教えてください。コントロールの名前を取得しますか?

<ItemsControl ItemsSource="{Binding Path=.}" >
            <ItemsControl.ItemTemplate>
                <DataTemplate x:Name="datatemp">
                        <StackPanel Orientation="Horizontal"> 

<TextBlock  x:Name="Textblock1" Text="{Binding }" FontWeight="Bold" ></TextBlock>
                        <TextBlock Text=", " />
                            <TextBlock Text="{Binding }" x:Name="Textblock2"></TextBlock>
                        <TextBlock Text=", " />
                            <TextBlock Text="{Binding }" x:Name="Textblock3"></TextBlock>
                    </StackPanel>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

しかし、ここのコードファイル Textblock1 では、「 x:Name 」の代わりに「名前」のみを使用しても、他の名前は表示されません

4

2 に答える 2

0

DataTemplateのメンバーは生成されません。データテンプレートは実行時にアイテムを動的にインスタンス化するために使用されるため、ItemsControlにアイテムを追加するまでコントロールは存在しません。それでも、DataTemplate内の個々のコントロールの名前は、DataTemplate内からの使用に役立つと思います。マークアップ。

于 2012-05-04T06:58:21.277 に答える