这似乎是一个棘手的问题。至少,很难描述。
基本上,我将 GridView 的 itemsSource 设置为对象列表,并且我希望 GridView 中的每个项目都可以访问它在自己的代码中生成的对象。
以下是一些片段,我希望能说出我的意思:
阅读Page.xaml.cs
zoomedInGrid.ItemsSource = openChapters.chapters; //A List<BibleChapter>
阅读页面.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
}