简体   繁体   中英

C# visible doesn't works

I'm making a Universal application for Windows Phone 8.1 and have a problem with my code.

After TextBlock value become greater or equal than 22, some images should become visible. If the value is less than 22 all images should be invisible.

My question: How I can get visible images after textblock value >="22"

This is my code to hide images:

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

This code part is from 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}"/>

I have problem with: RaisePropertyChanged("ImageVis");

The name 'RaisePropertyChanged' does not exist in the current context

Does this mean I have make some object with that name? or something else?

I can provide my My application so you can see what's happening.

My application sample

RaisePropertyChanged is MVVM Light's method and makes UI updated whenever you raise a property with the given name.In the XAML code behind , you bind ViewModel's properties to XAML properties and when RaisePropertyChanged triggers , it notifies the given property and UI is refreshed after.

You also need to use Converters to convert boolean to Visibility.In general , you need more MVVM Pattern knowledge to Windows projects.

Check out this post http://www.mvvmlight.net/doc/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM