[英]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.