问题描述
我有以下 xaml,特别是它有一个按钮命令,它使用 TemplateBinding
来访问 viewmodel 命令。
<ContentView
x:Class="OurApp.Controls.CustomPopupWrapper" >
<ContentView.ControlTemplate>
<ControlTemplate>
<StackLayout>
<Button
Command="{TemplateBinding Parent.BindingContext.ClosePopupAsyncCommand}" />
</StackLayout>
</ControlTemplate>
</ContentView.ControlTemplate>
</ContentView>
如何在代码中指定 TemplateBinding
命令?
我希望能够添加一个条件,仅将 TemplateBinding
命令用作默认值,并使用 BindableProperty
参数传递其他命令。
我似乎在网络上找不到任何说明如何使用代码中的命令指定 TemplateBinding
的来源。
解决方法
后面的代码应该是这样的:
public void test()
{
Button btn = new Button();
TemplateBinding templateBinding = new TemplateBinding("ClosePopupAsyncCommand");
btn.BindingContext = myViewModel;
btn.SetBinding(Button.CommandProperty,templateBinding);
}