C# 进度条';s的可见性属性在运行时不更改
我想在按下按钮后隐藏进度条,但它似乎不起作用 这是我在XAML中的进度条:C# 进度条';s的可见性属性在运行时不更改,c#,wpf,dependency-properties,C#,Wpf,Dependency Properties,我想在按下按钮后隐藏进度条,但它似乎不起作用 这是我在XAML中的进度条: <ProgressBar Grid.Row="1" Grid.Column="1" IsIndeterminate="True" Height="37" Margin="0,10,0,10" Visibility="{Binding ProgressVisibility, Mode=TwoWay}" RenderTransformOrigin="0.5,0.5"/> 在视图模型中,我具有以下属性:
<ProgressBar Grid.Row="1" Grid.Column="1" IsIndeterminate="True" Height="37" Margin="0,10,0,10" Visibility="{Binding ProgressVisibility, Mode=TwoWay}" RenderTransformOrigin="0.5,0.5"/>
在视图模型中,我具有以下属性:
public Visibility ProgressVisibility
{
get { return (Visibility)GetValue(ProgressVisibilityProperty); }
set { this.SetValue(ProgressVisibilityProperty, value); }
}
public static readonly DependencyProperty ProgressVisibilityProperty =
DependencyProperty.Register("ProgressVisibility", typeof(Visibility), typeof(RecipeDownloadDialogStatusView), new PropertyMetadata(Visibility.Visible));
private Visibility progressVisibility;
public Visibility ProgressVisibility
{
get
{
return this.progressVisibility;
}
set
{
this.progressVisibility = value;
this.OnPropertyChanged("ProgressVisibility");
}
}
当按下按钮时,我调用:
ProgressVisibility = Visibility.Hidden;
调试时:
- 执行上面的行,但什么也没发生
- setter被调用,OnPropertyChanged也被调用
- 将注册依赖项属性
我真的不确定我做错了什么。任何帮助都将不胜感激。基于您的问题,我认为这里有两个问题:
ProgressBar
的DataContext
设置为viewmodel,但是按钮只更新父控件/窗口的属性
ProgressBar
的DataContext
设置为您的父控件/窗口,但您的按钮
仅更新viewmodel的属性ProgressVisibility
公开,请将其更改为
public Visibility ProgressVisibility
{
get => this.viewModel.ProgressVisibility;
set => this.viewModel.ProgressVisibility = value;
}
如果
ProgressVisibility
不需要公开,只需删除dependency属性,在viewmodel中使用实现即可。这里需要dependency属性吗?是否正确设置了DataContext?我想稍后添加一个动画,但这与此无关。是否也调用了getter?可能您的DataContext
有问题,您需要处理按钮中的command属性并更改视图模型中的visibility属性,还可以设置progressbar的名称并在代码隐藏中更改其visibility属性,如ProgressBarName.visibility=visibility.Hidden;由于某种原因,您有两个属性,问题是您设置了哪个属性,并且绑定到哪个属性?您需要绑定到您设置的属性,然后单击按钮。还可能有第三件事……)@第三件事是什么?首先我想看看按钮\u单击处理程序。