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"在当前上下文中不存在
这是否意味着我用这个名字制作了一些对象? 还是别的什么?
我可以提供我的申请,以便你可以看到发生了什么。
我的应用程序示例
RaisePropertyChanged 是 MVVM Light 的方法,每当使用给定名称引发属性时,都会更新 UI。在 XAML 代码隐藏 中,将 ViewModel 的属性绑定到 XAML 属性,当 RaisePropertyChanged 触发器时,它会通知给定的属性,并在之后刷新 UI。
你还需要使用转换器将布尔值转换为 Visibility.In 通用的,你需要更多的MVVM模式知识来理解Windows项目。
看看这篇文章http://www.mvvmlight.net/doc/