我有一个带有 ListBox 控件的笔记应用程序,它列出了ObservableCollection<Note> Notes
. class Note
具有类似的属性
String Title;
bool Has_Reminder;
DateTime Reminder_Date;
我想要的是显示 的 TextBlock 元素仅在为真Reminder_Date
时才显示。Has_Reminder
但我不知道如何从我的自定义控件 NoteListItem 访问此属性。它的this.DataContext
属性是null
,但该控件仍能正确显示由 ListBox ItemsSource 传递的 Note 的绑定属性。我怎样才能做到这一点?
谢谢你的帮助。
我试图读取构造函数中的属性,但不起作用:
public NoteListItem()
{
InitializeComponent();
Note this_note = LayoutRoot.DataContext as Note; // turns out, this_note is null
if (!this_note.Has_Reminder)
Reminder_Info.Visibility = System.Windows.Visibility.Collapsed;
}
NoteListItem 控件
<Grid x:Name="LayoutRoot" >
<TextBlock x:Name="Title" Text="{Binding Title}" />
<TextBlock x:Name="Reminder_Date" Text="{Binding Reminder_Date}" />
</Grid>
笔记列表控件:
<ListBox x:Name="NoteListBox" ItemsSource="{Binding Notes}" >
<ListBox.ItemTemplate>
<DataTemplate>
<local:NoteListItem />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>