這似乎是一個棘手的問題。至少,這很難描述。我基本上將GridView的itemsSource設置爲對象列表,並且我希望GridView中的每個項都可以訪問它在其自己的代碼中生成的對象。XAML 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我需要訪問BibleChapter模板化的ChapterBox是爲創建的。
任何人都知道如何做到這一點?
編輯
這是我在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()的構造函數中,Chapter是** null **(上面提到的代碼)。如果它應該在構造函數中爲null,那麼它會在哪一點上發生變化,以及如何使builder.Build()運行一次? –
@MoscowModder你可以使用屬性更改的處理程序 - 參見上面的更新。 – McGarnagle