我有这个模板:
<?xml version="1.0" encoding="utf-8"?>
<StackLayout xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Test;assembly=Test"
x:Class="Test.Templates.SwitchTemplate"
x:Name="this" >
<Switch IsToggled="{Binding IsToggled, Source={x:Reference this}}" />
</StackLayout>
我的CS后端看起来像这样:
public partial class SwitchTemplate : StackLayout
{
public SwitchTemplate()
{
InitializeComponent();
}
public static readonly BindableProperty IsToggledProperty =
BindableProperty.Create(
nameof(IsToggled),
typeof(bool),
typeof(SwitchTemplate),
default(bool));
public bool IsToggled
{
get { return (bool)GetValue(IsToggledProperty); }
set { SetValue(IsToggledProperty, value); }
}
}
我想做的是在XAML的后端CS中有一个调用的方法,该方法在切换状态改变时使用模板。
有人可以给我一些有关如何编码XAML模板,其后端CS和使用该模板的XAML的CS的建议,以便在切换状态更改时可以执行一些操作吗?
答案 0 :(得分:0)
尝试将此(propertyChanged)添加到您的创建中
public static readonly BindableProperty IsToggledProperty =
BindableProperty.Create(
nameof(IsToggled),
typeof(bool),
typeof(SwitchTemplate),
default(bool),
propertyChanged: PropertyChanged);
并添加此方法:
private static void PropertyChanged(BindableObject bindable, object oldValue, object newValue)
{
var control = (SwitchTemplate)bindable;
//Do something :)
}