0
Xaml에서 단추에 명령을 바인딩하려고합니다. ViewModel에 선언 된 속성을 바인딩하고 단추의 배경색을 변경하는 것을 볼 수 있습니다. 버튼에 명령을 추가하는 것과 같은 방법으로 버튼을 클릭했을 때 버튼이 명령을 실행하지 않았습니다.Xamarin Form : ViewModel에서 XAML로 명령 바인딩 방법
내 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 객체를 반환했습니다. – LittleFunny