public class PicTypeImgSrcValueConverter:IValueConverter
{
//Model到UI的转换
public object Convert(object value, Type targetType, object parameter, string language)
{
int picType = (int)value;
string fileName = "ms-appx:///Images/" + picType + ".png";
return new BitmapImage(new Uri(fileName));
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
绑定另外一个属性是图片的Visibility True和False
View Code
//Model到UI的转换
public object Convert(object value, Type targetType, object parameter, string language)
{
bool b = (bool)value;
return b ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
每个图片绑定实体类为
View Code
public class LLKBlock:INotifyPropertyChanged
{
private void FirePropertyChanged(string PropertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this,new PropertyChangedEventArgs(PropertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
private int x;
public int X
{
get
{
return x;
}
set
{
x = value;
FirePropertyChanged("X");
}
}
private int y;
public int Y
{
get
{
return y;
}
set
{
y=value;
FirePropertyChanged("Y");
}
}
private bool isAlive;
public bool IsAlive
{
get
{
return isAlive;
}
set
{
isAlive=value;
FirePropertyChanged("IsAlive");
}
}
private int picType;
public int PicType
{
get
{
return picType;
}
set
{
picType=value;
FirePropertyChanged("PicType");
}
}
}
要继承INotifyPropertyChanged这个接口,实现接口,并定义一个方法向客户端发出某一属性值已更改的通知。
X,Y即绑定10行10列的列和行,相当于坐标化,IsAlive就是绑定到Image是否显示的Visibility,PicType就是将绑定图片路径它为Int类型,那么我们就需要将其进行转换成可以进行绑定的实际图片路径。
View Code
public class PicTypeImgSrcValueConverter:IValueConverter
{
//Model到UI的转换
public object Convert(object value, Type targetType, object parameter, string language)
{
int picType = (int)value;
string fileName = "ms-appx:///Images/" + picType + ".png";
return new BitmapImage(new Uri(fileName));
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}