我希望能够在按下按钮后隐藏进度条,但它似乎不起作用。
这是我在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"/>
在我的.xaml.cs中,我有这个依赖属性:
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;
调试时:
我不确定我做错了什么。任何帮助将不胜感激。
基于你的问题,我认为这里的问题之一是问题:
DataContext
的ProgressBar
设置为您的viewmodel,但您的Button
仅更新父控件/窗口的属性。DataContext
is的ProgressBar
设置为您的父控件/窗口,但您的Button
仅更新您的viewmodel的属性。如果您希望ProgressVisibility
公开,请将其更改为
public Visibility ProgressVisibility
{
get => this.viewModel.ProgressVisibility;
set => this.viewModel.ProgressVisibility = value;
}
如果ProgressVisibility
不需要公开,只需删除依赖项属性,然后使用viewmodel中的实现。