wpf中基于数据源的用户控件的Hid部分
本文关键字:用户 控件 Hid 部分 数据源 wpf | 更新日期: 2023-09-27 18:28:50
我有一个user control
,它包含两个形状,一个椭圆和一个矩形。如果我要绑定的数据源设置为false,我想隐藏矩形,如果设置为true,则隐藏可见矩形。椭圆也是如此。
所以在我的情况下,我如何根据ismale布尔设置椭圆的可见性。还基于isFemale bool设置矩形可见性?
用户控制
<UserControl>
<Grid HorizontalAlignment="Center" VerticalAlignment="Center"
MinWidth="200" MinHeight="120">
<Rectangle Fill="Gray" Margin="5" />
<Ellipse Fill="Red" Margin="5" />
</Grid>
</UserControl>
我在mvvm设置中数据绑定到的类对象的伪代码。
class Person
{
public bool IsMale {get;set;}
public bool IsFemale {get;set;}
public string Name {get;set;}
}
您可以简单地对形状的每个Style
使用DataTrigger
。
<UserControl>
<Grid HorizontalAlignment="Center"
VerticalAlignment="Center"
MinWidth="200"
MinHeight="120">
<Rectangle Fill="Gray" Margin="5">
<Rectangle.Style>
<Style TargetType="Rectangle">
<Setter Property="Visibility" Value="Collpased"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsFemale}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
<Ellipse Fill="Red" Margin="5">
<Ellipse.Style>
<Style TargetType="Ellipse">
<Setter Property="Visibility" Value="Collpased"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsMale}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Ellipse.Style>
</Ellipse>
</Grid>
</UserControl>
此外,请注意,UserControl
的DataContext的类型必须为Person
对象。