C#visible不起作用

时间:2015-06-19 20:47:04

标签: c# visual-studio-2013 windows-phone-8.1

我正在为Windows Phone 8.1制作通用应用程序,但我的代码出现问题。

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

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

这是隐藏图片的代码:

df = pd.DataFrame(np.random.rand(5, 3), columns=list('ABC'))
target_rows = [1, 3, 4]

a = df.iloc[[i for i in df.index if i not in target_rows], :]
b = df.iloc[target_rows, :]
>>> pd.concat([a, b])
          A         B         C
0  0.818722  0.174153  0.522383
2  0.581577  0.840306  0.985089
1  0.645752  0.238476  0.670922
3  0.198271  0.501911  0.954477
4  0.965488  0.735559  0.701077

此代码部分来自XAML:

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));
}

我遇到问题:<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}"/>

  

名称&#39; RaisePropertyChanged&#39;在当前上下文中不存在

这是否意味着我用这个名字做了一些对象?或其他什么?

我可以提供My application,以便您了解正在发生的事情。

My application sample

1 个答案:

答案 0 :(得分:1)

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

您还需要使用转换器将布尔值转换为Visibility。通常,您需要更多的MVVM模式知识到Windows项目。

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