Xamarin,从另一个类中获得滑块的价值

时间:2020-05-24 12:40:25

标签: c# xamarin

我在获取绑定到Temp_Mash_value的滑块的值时遇到一些问题。

<Slider x:Name="Temp_Mash" Margin="20,5,20,0" MaximumTrackColor="DarkGray" MinimumTrackColor="Gray" ThumbColor="Black" Minimum="0" Maximum="100" Value="{Binding Temp_Mash_value}"

当我使用Mash类在ContentPage上时,可以将值例如更改为45且没有问题并获得实际值,但是当我更改页面在哪里是第一类并尝试获取Temp_Mash_value的值时,我正在仅使用默认值,例如:Temp_Mash_value = 25;而不是实际设置的。 我可以添加Mash mash = new Mash();在开始时被调用,而在此之后更改滑块值

//In one of my class I have:

Mash mash = new Mash();
//... some code...
//method with:
//I'm trying to get value of slider:
double test = mash.Temp_Mash_value;



//The second class:

 public partial class Mash : ContentPage
    {
        private double temp_Mash_value;
        public double Temp_Mash_value
        {
            get
            {
                return temp_Mash_value;

            }
            set
            {
                temp_Mash_value = value;
                OnPropertyChanged(nameof(Temp_Mash_value));
            }


        }

        public Mash()
        {

            InitializeComponent();
            BindingContext = this; 
            Temp_Mash_value = 25;

        }
    }

1 个答案:

答案 0 :(得分:0)

最简单的方法是将Mash设置为全局静态。

public partial class Mash : ContentPage
{
    private double temp_Mash_value;
    public double Temp_Mash_value
    public static Mash Instance;
    {
        get
        {
            return temp_Mash_value;

        }
        set
        {
            temp_Mash_value = value;
            OnPropertyChanged(nameof(Temp_Mash_value));
        }


    }

    public Mash()
    {

        InitializeComponent();
        BindingContext = this; 
        Temp_Mash_value = 25;
        Instance = this;
    }
}

然后在其他类中,您可以得到如下值:

double test = Mash.Instance.Temp_Mash_value;