C# 如何在应用程序设置中设置usercontrol的样式?
[我的主要想法是为usercontrol设置可见/隐藏。我将WPF与Mvvmcross一起使用。] 我有一个用户控件调用SpinningWheelUserControl。我想用datatrigger来显示/隐藏它。下面是我在App.xaml中的xaml代码 在App.xaml中,我添加了usercontrol的名称空间,如下所示C# 如何在应用程序设置中设置usercontrol的样式?,c#,wpf,user-controls,mvvmcross,C#,Wpf,User Controls,Mvvmcross,[我的主要想法是为usercontrol设置可见/隐藏。我将WPF与Mvvmcross一起使用。] 我有一个用户控件调用SpinningWheelUserControl。我想用datatrigger来显示/隐藏它。下面是我在App.xaml中的xaml代码 在App.xaml中,我添加了usercontrol的名称空间,如下所示 xmlns:local="clr-namespace:UserControl" 下面是my usercontrol的样式设置 <Style x:Key="Spi
xmlns:local="clr-namespace:UserControl"
下面是my 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 = new SpinningWheelViewModel();
SpinningWheel.IsVisible = false;
用户控件在第一次运行时是隐藏的。但当我把易见变为真时,它没有变化
SpinningWheel.IsVisible = true
您需要设置
Visibility
,而不是像这样设置isvisibility
:
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");
}
}
}
假设您已经在类上实现了。您需要设置
可见性
,而不是像这样设置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");
}
}
}
假设您已经在您的类上实现了。这个名为n+1的视频确切地显示了如何做您正在尝试做的事情。这个名为n+1的视频确切地显示了如何做您正在尝试做的事情。我不能使用可见性,因为核心项目是一个可移植类,我将用于其他平台。谢谢很我忘记在集合块中添加RaisePropertyChanged(()=>IsVisible)。我无法使用可见性,因为核心项目是一个可移植类,我将用于其他平台。非常感谢。我忘记在set块中添加RaisePropertyChanged(()=>IsVisible)。