Это кажется сложным. По крайней мере, сложно описать.Шаблон XAML GridView привязан к элементу
В основном, я устанавливаю itemsSource GridView в список объектов, и я хочу, чтобы каждый элемент в 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.
Кто-нибудь знает, как это сделать?
EDIT
Это то, что я имею в 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
}
Вау, это было удивительно просто! Кажется, что все должно работать, но в конструкторе для ChapterBox() глава ** null ** (код введен в вопросе выше). Если в конструкторе предполагается, что он является нулевым, то в какой момент он изменится и как я могу сделать builder.Build() запущенным, как только это произойдет? –
@MoscowModder вы, вероятно, можете использовать обработчик с изменением свойства для этого - см. Обновление выше. – McGarnagle