【发布时间】:2016-10-11 10:08:33
【问题描述】:
我正在尝试在我的 Xamarin Forms 应用程序中实现 XLabs CameraViewModel 功能。不幸的是,给定的示例使用 XAML 将视图与数据绑定,但我需要在后面的代码中执行此操作。
以下代码用于选择图片并获取其来源。
public class CameraViewModel : XLabs.Forms.Mvvm.ViewModel
{
...
private ImageSource _imageSource;
private Command _selectPictureCommand;
public ImageSource ImageSource
{
get { return _imageSource; }
set { SetProperty(ref _imageSource, value); }
}
public Command SelectPictureCommand
{
get
{
return _selectPictureCommand ?? (_selectPictureCommand = new Command(
async () => await SelectPicture(),() => true));
}
}
...
}
这些命令绑定到 XAML:
<Button Text="Select Image" Command="{Binding SelectPictureCommand}" />
<Image Source="{Binding ImageSource}" VerticalOptions="CenterAndExpand" />
如何在代码隐藏中为创建的元素应用相同的命令?
CameraViewModel ViewModel = new CameraViewModel();
var Take_Button = new Button{ };
Take_Button.SetBindings(Button.CommandProperty, //*???*//);
var Source_Image = new Image { };
Source_Image.SetBinding(Image.SourceProperty, //*???*//);
我已经通过执行以下操作成功绑定了 SelectPictureCommand:
Take_Button .Command = ViewModel.SelectPictureCommand;
但是我怀疑它是正确的方法,同样的逻辑不能应用于 ImageSource。
【问题讨论】: