【发布时间】:2017-01-15 20:22:57
【问题描述】:
我正在尝试将命令绑定到 Xaml 中的按钮。我可以绑定在 ViewModel 中声明的属性并查看它来更改按钮背景的颜色。使用相同的方式将命令添加到按钮,当我单击它时,按钮没有触发命令。
我的 ViewModel 命令属性
public Color Color
{
get
{
return Color.Teal;
}
}
public ICommand OpenFileCommand = new Command((object obj) => {
Task.Run(() =>
{
var pickFileTask = CrossFilePicker.Current.PickFile();
var data = pickFileTask.Result;
//OpenDocument(data.FileName, data.DataArray);
});
});
Xaml 部分:
<!-- Left Panel -->
<StackLayout x:Name="leftStack" Orientation="Vertical" BackgroundColor="Transparent">
<Button
x:Name="btnOpen"
BackgroundColor="{Binding Color}"
Command="{Binding OpenFileCommand}"
Image="addfile"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand"
WidthRequest="40"
HeightRequest="40">
</Button>
如果我在代码中绑定命令,它将在我的视图模型类中执行 OpenFileCommmand:
btnOpen.Command = viewModel.OpenFileCommand;
【问题讨论】:
-
我很困惑哪个部分不工作?是 XAML 还是 C#
-
对不起,我现在可以工作了...在我定义 Command 属性的视图模型中。我已更改为 getter 并返回一个 Command 对象。
标签: mvvm xamarin command viewmodel