Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
117 views
in Technique[技术] by (71.8m points)

c# - How to specify a TemplateBinding command in code?

I have the following xaml, specifically it has a button command, which uses a TemplateBinding to access a ViewModel command.

<ContentView
    x:Class="OurApp.Controls.CustomPopupWrapper" >
    <ContentView.ControlTemplate>
        <ControlTemplate>
            <StackLayout>

              <Button
Command="{TemplateBinding Parent.BindingContext.ClosePopupAsyncCommand}" />

           </StackLayout>
        </ControlTemplate>
    </ContentView.ControlTemplate>
</ContentView>

How can I specify the TemplateBinding command in code?

I would like to be able to add a condition to only use the TemplateBinding command as a default value and use a BindableProperty parameter to pass other commands.

I can't seem to find any sources on the web that show how to specify a TemplateBinding with a command in code.

question from:https://stackoverflow.com/questions/65922603/how-to-specify-a-templatebinding-command-in-code

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The code behind should be something like this:

public void test()
{


    Button btn = new Button();
    TemplateBinding templateBinding = new TemplateBinding("ClosePopupAsyncCommand");

    btn.BindingContext = myViewModel;

    btn.SetBinding(Button.CommandProperty, templateBinding);
}

Refer: BindableObject.SetBinding TemplateBinding Class


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...