[英]How to set a style for usercontrol in application setting?
[我的主要想法是为用户控件设置可见/隐藏。 我将WPF与Mvvmcross一起使用。]
我有一个用户控件调用SpinningWheelUserControl。 我想用datatrigger看到/隐藏它。 以下是我在App.xaml中的xaml代码
在App.xaml中,我添加了usercontrol的命名空间,如下所示。
xmlns:local="clr-namespace:UserControl"
以下是我的用户控件的样式设置。
<Style x:Key="SpinningWheel" TargetType="{x:Type local:SpinningWheelUserControl}" >
<Style.Triggers>
<DataTrigger Binding="{Binding IsVisible}" Value="true">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding IsVisible}" Value="false">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
SpinningWheel有一个类
public class SpinningWheelViewModel
: MvxNotifyPropertyChanged
{
public bool IsVisible { get; set; }
}
在父类的构造函数中,我使用像这样的代码
SpinningWheel = new SpinningWheelViewModel();
SpinningWheel.IsVisible = false;
用户控件在第一次运行时被隐藏。 但是当我将IsVisble更改为true时,它没有任何变化。
SpinningWheel.IsVisible = true
您需要这样设置Visibility
而不是IsVisible
:
SpinningWheel.Visibility = Visibility.Visible;
哦,现在我明白了,您正在设置自定义IsVisibility
而不是UIElement属性。
代码的问题是您没有引发PropertyChanged
来让UI知道基础源对象中的某些属性发生了变化。
private bool isVisible;
public bool IsVisible
{
get { return isVisible;}
set
{
if(isVisible != value)
{
isVisible = value;
RaisePropertyChanged("IsVisible");
}
}
}
假设您已经在类上实现了INotifyPropertyChanged 。
这个n + 1个视频,称为N = 34:一个数据绑定的繁忙对话框完全显示了如何执行您要执行的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.