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;
}
}
解决方案
执行此操作的最简单方法是将 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;
推荐阅读
- windows-services - Tomcat卸载使用控制面板-Tomcat服务未删除
- javascript - JS:使用键值对的构造函数的性能
- xcode - PDF Kit View 不在我的 Xcode 对象库中
- c - 在图中使用队列进行拓扑排序
- javascript - 脚本仅使用 $(document) 调用一次
- identityserver4 - 带有 identityserver4 的自定义应用程序登录屏幕
- php - Laravel API 资源响应分组
- shell - 在 for 循环中并行运行每个迭代
- sapui5 - 在 SAPUI5 应用程序中注销
- javascript - 提取两个特殊字符之间的部分字符串 - Javascript