これは難しいようです。少なくとも、説明するのは難しいです。
基本的に、GridView の itemsSource をオブジェクトのリストに設定しています。GridView 内の各項目が、独自のコードで生成されたオブジェクトにアクセスできるようにします。
ここに、私が言いたいことを伝えたいと思うスニペットをいくつか示します。
ReadingPage.xaml.cs
zoomedInGrid.ItemsSource = openChapters.chapters; //A List<BibleChapter>
ReadingPage.xaml
<GridView x:Name="zoomedInGrid">
<GridView.ItemTemplate>
<DataTemplate>
<local:ChapterBox Chapter="" />
<!--I have no idea what to put here^^^-->
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
次に、ChapterBox.xaml.cs で、テンプレート化された ChapterBox が作成された BibleChapter にアクセスする必要があります。
誰でもこれを行う方法を知っていますか?
編集
これは私が ChapterBox.xaml.cs に持っているものです:
public static readonly DependencyProperty ChapterProperty =
DependencyProperty.Register("Chapter",
typeof(BibleChapter),
typeof(ChapterBox),
null);
public BibleChapter Chapter
{
get { return (BibleChapter)GetValue(ChapterProperty); }
set { SetValue(ChapterProperty, value); }
}
public ChapterBox()
{
this.InitializeComponent();
VerseRichTextBuilder builder = new VerseRichTextBuilder();
builder.Build(textBlock, Chapter); //<== Chapter is null at this point
}