首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带有DataTemplates的WPF ListBoxItems - 如何从DataTemplate中引用绑定到ListBoxItem的CLR对象?

在WPF中,要从DataTemplate中引用绑定到ListBoxItem的CLR对象,可以使用FindAncestor方法来查找祖先元素,然后使用TemplateBinding来绑定到该元素的属性。

以下是一个示例:

代码语言:xaml
复制
<ListBox ItemsSource="{Binding Items}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Name}" />
           <Button Content="Click me" Command="{Binding DataContext.MyCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBox}}}" CommandParameter="{Binding}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

在这个示例中,我们在DataTemplate中添加了一个Button,并使用FindAncestor方法查找祖先元素ListBox。然后,我们使用TemplateBinding将Command绑定到ListBox的DataContext中的MyCommand属性,并将CommandParameter绑定到当前的ListBoxItem。

这样,当用户点击按钮时,就会执行MyCommand方法,并将当前ListBoxItem的CLR对象作为参数传递给该方法。

需要注意的是,在使用FindAncestor方法时,必须指定AncestorType属性,以便查找到正确的祖先元素。在这个示例中,我们使用了x:Type ListBox来指定AncestorType属性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券