来自 ListBox ItemTemplate 的 WPF 绑定
WPF binding from ListBox ItemTemplate
我从 ListBox
Itemtemplate
绑定时遇到问题,它包含一个 Expander
及其自己的 HeaderTemplate
和 ContentTemplate
.
<ListBox ItemsSource="{Binding Feeds}">
<ListBox.ItemTemplate>
<DataTemplate>
<Expander Content="{Binding Text}"
Header="{Binding Title}">
<Expander.HeaderTemplate>
<DataTemplate>
<DockPanel >
<TextBlock Text="{Binding PublishDate}" />
<TextBlock Text="{Binding}" />
</DockPanel>
</DataTemplate>
</Expander.HeaderTemplate>
<Expander.ContentTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Image Source="{Binding ImageURL}" />
<TextBlock Text="{Binding}" />
</StackPanel>
</DataTemplate>
</Expander.ContentTemplate>
</Expander>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
PublishDate 和 ImageURL 绑定不起作用,我想将它们绑定到对象 Feed 中的属性:
Public Class Feed
Public Property Title As String
Public Property PublishDate As DateTime
Public Property Text As String
Public Property ImageURL As String
End Class
我尝试 FindAncestor
在绑定中找到 ListBoxItem
但它没有帮助我。
Expander 的 Content 用作 ContentTemplate 的 DataContext 和 HeaderTemplate 的 Header。
改为设置 Content="{Binding}" 和 Header="{Binding}"。这会将两个模板的 DataContext 设置为 ListBoxItem(即 Feed)的 DataContext。
我从 ListBox
Itemtemplate
绑定时遇到问题,它包含一个 Expander
及其自己的 HeaderTemplate
和 ContentTemplate
.
<ListBox ItemsSource="{Binding Feeds}">
<ListBox.ItemTemplate>
<DataTemplate>
<Expander Content="{Binding Text}"
Header="{Binding Title}">
<Expander.HeaderTemplate>
<DataTemplate>
<DockPanel >
<TextBlock Text="{Binding PublishDate}" />
<TextBlock Text="{Binding}" />
</DockPanel>
</DataTemplate>
</Expander.HeaderTemplate>
<Expander.ContentTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Image Source="{Binding ImageURL}" />
<TextBlock Text="{Binding}" />
</StackPanel>
</DataTemplate>
</Expander.ContentTemplate>
</Expander>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
PublishDate 和 ImageURL 绑定不起作用,我想将它们绑定到对象 Feed 中的属性:
Public Class Feed
Public Property Title As String
Public Property PublishDate As DateTime
Public Property Text As String
Public Property ImageURL As String
End Class
我尝试 FindAncestor
在绑定中找到 ListBoxItem
但它没有帮助我。
Expander 的 Content 用作 ContentTemplate 的 DataContext 和 HeaderTemplate 的 Header。
改为设置 Content="{Binding}" 和 Header="{Binding}"。这会将两个模板的 DataContext 设置为 ListBoxItem(即 Feed)的 DataContext。