在xaml中设置标记值

时间:2018-03-01 08:44:39

标签: xaml xamarin xamarin.forms

在Xamarin中,有没有办法在xaml文件中设置标记到按钮?

我试过了,

<Button Text="OK"
 Tag="{Binding Email}"/>

但Tag属性不支持xaml

xaml中有哪些属性支持将标记值设置为视图

3 个答案:

答案 0 :(得分:2)

您可以轻松创建自己的自定义Button并添加标记BindableProperty

public class ButtonWithTag : Button
{
    public object Tag
    {
        get { return (object)GetValue(TagProperty); }
        set { SetValue(TagProperty, value); }
    }

    public static readonly BindableProperty TagProperty =
        BindableProperty.Create(nameof(Tag), typeof(object), typeof(ButtonWithTag), null);
}

您在XAML

中使用它
xmlns:local="clr-namespace:YourProjectName"

    <local:ButtonWithTag 
        Text="Ok"
        Tag="{Binding Email}" />

答案 1 :(得分:1)

您可以使用x:Name="MyButton",然后仅使用MyButton.Text = "updated text"访问代码隐藏.cs文件中的按钮。假设这就是你的意思。

答案 2 :(得分:1)

我认为最好的解决方案是CommandParameter。您可以使用CommandParameter执行此操作。试试这个,

的.xaml

<Button Text="OK"
        Command="{Binding TapCommand}"
        CommandParameter="EmailAddress"/>

.cs

ICommand tapCommand;

public ICommand TapCommand {
    get { return tapCommand; }
}

public ConstructorName {
tapCommand = new Command (OnTapped);
}

void OnTapped (object s)  {
    Debug.WriteLine ("parameter: " + s);
}