Visual Studio 2013 - C# visible 不起作用

本文关键字:visible 不起作用 Studio 2013 Visual | 更新日期: 2023-09-27 17:57:07

我正在为 Windows Phone 8.1 开发一个通用应用程序,但我的代码有问题。

在 TextBlock 值大于或等于 22 后,某些图像应变为可见。如果该值小于 22,则所有图像都应不可见。

我的问题:如何在文本块值>="22" 后获得可见图像

这是我隐藏图像的代码:

private void points_Loaded(object sender, RoutedEventArgs e)
{
  int n = 0;
  bool b = int.TryParse(points.Text, out n);
  DataContext = this;
  ImageVis = (b && n >= 22) ? Visibility.Visible : isibility.Collapsed;
}
private Visibility imageVis;
public Visibility ImageVis
{
  get { return imageVis; }
  set
  {
    imageVis = value;
    RaisePropertyChanged("ImageVis");
  }
}
public event PropertyChangedEventHandler PropertyChanged = delegate { };
protected void RaisePropertyChanged(string propertyName)
{
    PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}

此代码部分来自 XAML:

<Image x:Name="hole17img" 
  HorizontalAlignment="Left" 
  Height="57" 
  Margin="10,3540,0,0" 
  VerticalAlignment="Top" 
  Width="380"
  Source="Assets/septinpatsmit.png" 
  Stretch="Fill"
  Visibility="{Binding ImageVis, Mode=TwoWay}"/>

我有问题:RaisePropertyChanged("ImageVis");

名称"RaisePropertyChanged"在当前上下文中不存在

这是否意味着我用这个名字制作了一些对象? 还是别的什么?

我可以提供我的申请,以便你可以看到发生了什么。

我的应用程序示例

Visual Studio 2013 - C# visible 不起作用

RaisePropertyChanged 是 MVVM Light 的方法,每当使用给定名称引发属性时,都会更新 UI。在 XAML 代码隐藏 中,将 ViewModel 的属性绑定到 XAML 属性,当 RaisePropertyChanged 触发器时,它会通知给定的属性,并在之后刷新 UI。

你还需要使用转换器将布尔值转换为 Visibility.In 通用的,你需要更多的MVVM模式知识来理解Windows项目。

看看这篇文章http://www.mvvmlight.net/doc/