在 WPF 的 UserControl 中显示/隐藏 DataTemplate 中的控件
我有一个 UserControl,有一个带有 DataTemplate 的 ListView 控件,在 DataTemplate 中我定义了一个要根据 UserControl 的名为 ShowCheckBox 的属性显示的复选框。
如何获取对 UserControl 的引用,以便我可以执行以下操作:
<UserControl x:Class="WpfApplication15.UserControl2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="500">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Visibility="{Binding ??? this.ShowCheckBox ??? }" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</UserControl>
I have a UserControl, there is a ListView control with DataTemplate, in the DataTemplate I define a CheckBox to be shown based on a property of the UserControl called ShowCheckBox.
How do I get the reference to the UserControl so I can do some thing like:
<UserControl x:Class="WpfApplication15.UserControl2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="500">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Visibility="{Binding ??? this.ShowCheckBox ??? }" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</UserControl>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 BooleanToVisibilityConverter 和 相对源绑定。
You could to use a BooleanToVisibilityConverter and a RelativeSourceBinding.
调用您的用户控件,如下:
x:Name="This"
并且比:
假设您的属性是 Visibility 类型(如果它是 bool 您应该按照另一个答案中的建议使用 BoolToVisibilityConverter )
Call your UserControl, this:
x:Name="This"
And than:
Assuming your property is of type Visibility (if it's bool you should use BoolToVisibilityConverter as suggested in another answer)