Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在Xamarin表单平台上应用行为_C_Xamarin_Bindableproperty - Fatal编程技术网

C 如何在Xamarin表单平台上应用行为

C 如何在Xamarin表单平台上应用行为,c,xamarin,bindableproperty,C,Xamarin,Bindableproperty,我想在我的xamarin表单应用程序中添加数字向上/向下动画。我找到了代码示例 但我还没有申请。如何应用此行为类Xamarin Forms标签控件 我尝试了这个代码,但没有成功 <Label x:Name="lblScore" FontSize="24" TextColor="Black" Text="{Binding Number}" HorizontalOptions="Center" VerticalOptions="CenterAndExpand">

我想在我的xamarin表单应用程序中添加数字向上/向下动画。我找到了代码示例

但我还没有申请。如何应用此行为类Xamarin Forms标签控件

我尝试了这个代码,但没有成功

 <Label x:Name="lblScore"  FontSize="24"  TextColor="Black" Text="{Binding Number}" HorizontalOptions="Center" VerticalOptions="CenterAndExpand">
                        <Label.Behaviors>
                            <controls:NumericTextAnimationBehavior Value="{Binding Number}"/>
                        </Label.Behaviors>
                    </Label>
我的项目没用。我想为标签应用计数器动画


感谢您的支持。

我搜索了INotifyPropertyChanged模式并解决了它

型号:

public class ScoreViewModel : INotifyPropertyChanged
{
    // boiler-plate
    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    }
    protected bool SetField<T>(ref T field, T value, string propertyName)
    {
        if (EqualityComparer<T>.Default.Equals(field, value)) return false;
        field = value;
        OnPropertyChanged(propertyName);
        return true;
    }

    // props
    private string number;
    public string Number
    {
        get { return number; }
        set { SetField(ref number, value, "Number"); }
    }
}
Xaml:



如果您想深入了解INotifyPropertyChanged实现,请查看这里()

我搜索了INotifyPropertyChanged模式并解决了它

型号:

public class ScoreViewModel : INotifyPropertyChanged
{
    // boiler-plate
    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    }
    protected bool SetField<T>(ref T field, T value, string propertyName)
    {
        if (EqualityComparer<T>.Default.Equals(field, value)) return false;
        field = value;
        OnPropertyChanged(propertyName);
        return true;
    }

    // props
    private string number;
    public string Number
    {
        get { return number; }
        set { SetField(ref number, value, "Number"); }
    }
}
Xaml:


如果您想深入了解INotifyPropertyChanged实现,请查看此处()

public partial class ProfilePage : ContentPage
{
    ScoreViewModel scoreViewModel = new ScoreViewModel();
    public ProfilePage()
    {
        InitializeComponent();

        lblScore.BindingContext = scoreViewModel;
    }

    private void btnSetRandom_Clicked(object sender, EventArgs e)
    {
        Random randomizer = new Random();
        scoreViewModel.Number = randomizer.Next(9999, 99999).ToString();

    }
}
 <Label x:Name="lblScore"  FontSize="24" Text="{Binding Number}">
    <Label.Behaviors>
        <controls:NumericTextAnimationBehavior Value="{Binding Number}"/>
    </Label.Behaviors>
</Label>