Windows phone 8.1 绑定设备映像路径windows phone 8.1

Windows phone 8.1 绑定设备映像路径windows phone 8.1,windows-phone-8.1,Windows Phone 8.1,如何绑定设备映像路径windows phone 下面是图像路径 "C://Data//Users//Public//Pictures//Camera Roll//WP_20141001_002.jpg" 谢谢我不确定在您的情况下使用字符串是否是一个好的选择-也许可以使用BitmapImage-从path获取一个存储文件,打开Stream,然后设置BitmapImage-在这种情况下,您可以在转换器外执行异步操作 如果您仍然想使用字符串,这是可能的,但需要一些特殊的方法-使用异步方法和绑定。关于

如何绑定设备映像路径windows phone

下面是图像路径

"C://Data//Users//Public//Pictures//Camera Roll//WP_20141001_002.jpg"

谢谢

我不确定在您的情况下使用字符串是否是一个好的选择-也许可以使用BitmapImage-从path获取一个存储文件,打开Stream,然后设置BitmapImage-在这种情况下,您可以在转换器外执行异步操作

如果您仍然想使用字符串,这是可能的,但需要一些特殊的方法-使用异步方法和绑定。关于aynchronous MVVM,由Stephen Cleary编写。根据这篇文章,我制定了这样一个代码:

首先,我们必须定义一个转换器——它有点复杂,因为获取文件和流是异步的:

//
///根据传送路径获取图像的转换器
/// 
公共类PathToImage:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、字符串语言)
{
var task=GetImage((字符串)值);
//下面这节课你可以在上面提到的斯蒂芬的答案中找到
返回新的TaskCompletionNotifier(任务);
}
公共对象转换回(对象值、类型targetType、对象参数、字符串语言)
{抛出新的NotImplementedException();}
专用异步任务GetImage(字符串路径)
{
StorageFile文件=等待StorageFile.GetFileFromPathAsync(路径);
使用(var stream=await file.OpenAsync(FileAccessMode.Read))
{
BitmapImage=新的BitmapImage();
image.SetSource(流);
返回图像;
}
}
}
在我们的页面中,我们需要一个属性,我们将在绑定中使用该属性并设置DataContext:

公共密封部分类主页面:第页,INotifyPropertyChanged
{
私有字符串路径;
公共字符串映像路径
{
获取{return imagePath;}
设置{imagePath=value;RaiseProperty(“imagePath”);}
}
公共主页()
{
this.InitializeComponent();
DataContext=this;
}
//代码的其余部分
当然,我们必须定义绑定—例如在XAML中,这有点棘手,因为首先我们必须将DataContext绑定到任务,然后将源绑定到结果,这将在加载映像时引发:


我不确定在您的情况下,使用字符串是否是一个好的选择-也许可以使用BitmapImage-从path获取一个存储文件,打开Stream,然后设置BitmapImage-在这种情况下,您可以在转换器外执行异步操作

如果您仍然想使用字符串,这是可能的,但需要一些特殊的方法-使用异步方法和绑定。关于aynchronous MVVM,由Stephen Cleary编写。基于本文和我编写的代码:

首先,我们必须定义一个转换器——它有点复杂,因为获取文件和流是异步的:

//
///根据传送路径获取图像的转换器
/// 
公共类PathToImage:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、字符串语言)
{
var task=GetImage((字符串)值);
//下面这节课你可以在上面提到的斯蒂芬的答案中找到
返回新的TaskCompletionNotifier(任务);
}
公共对象转换回(对象值、类型targetType、对象参数、字符串语言)
{抛出新的NotImplementedException();}
专用异步任务GetImage(字符串路径)
{
StorageFile文件=等待StorageFile.GetFileFromPathAsync(路径);
使用(var stream=await file.OpenAsync(FileAccessMode.Read))
{
BitmapImage=新的BitmapImage();
image.SetSource(流);
返回图像;
}
}
}
在我们的页面中,我们需要一个属性,我们将在绑定中使用该属性并设置DataContext:

公共密封部分类主页面:第页,INotifyPropertyChanged
{
私有字符串路径;
公共字符串映像路径
{
获取{return imagePath;}
设置{imagePath=value;RaiseProperty(“imagePath”);}
}
公共主页()
{
this.InitializeComponent();
DataContext=this;
}
//代码的其余部分
当然,我们必须定义绑定—例如在XAML中,这有点棘手,因为首先我们必须将DataContext绑定到任务,然后将源绑定到结果,这将在加载映像时引发:


我不确定在您的情况下,使用字符串是否是一个好的选择-也许可以使用BitmapImage-从path获取一个存储文件,打开Stream,然后设置BitmapImage-在这种情况下,您可以在转换器外执行异步操作

如果您仍然想使用字符串,这是可能的,但需要一些特殊的方法-使用异步方法和绑定。关于aynchronous MVVM,由Stephen Cleary编写。基于本文和我编写的代码:

首先,我们必须定义一个转换器——它有点复杂,因为获取文件和流是异步的:

//
///根据传送路径获取图像的转换器
/// 
公共类PathToImage:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、字符串语言)
{
var task=GetImage((字符串)值);
//下面这节课你可以在上面提到的斯蒂芬的答案中找到
返回新的TaskCompletionNotifier(任务);
}
公共对象转换回(对象值、类型targetType、对象参数、字符串语言)
{抛出新的NotImplementedException();}
专用异步任务GetImage(字符串路径)
{
StorageFile文件=等待StorageFile.GetFileFromPathAsync(路径);
使用(var stream=await file.OpenAsync(FileAccessMode.Read))
{
BitmapImage=新的BitmapImage();
image.SetSource(流);
返回图像;
}
}
}
ImagePath = @"C:\Data\Users\Public\Pictures\Camera Roll\WP_20141001_002.jpg";