如何解决“ Maximum”属性的绑定值不适用于Slider Xamarin
我试图在“滑块最大值”上使用viewmodel属性,但是当我使用“绑定”时,滑块始终将当前值显示为0。
使用固定值,它可以工作:
<Slider Minimum="0" Maximum="16" Value="{Binding SliderStep,Mode=OneWay}" HorizontalOptions="CenterandExpand" />
但是最大值是可变的,因此当我尝试将其绑定到viewmodel时,出现了一些问题:
<Slider Minimum="0" Maximum="{Binding SliderMax}" Value="{Binding SliderStep,Mode=OneWay}" HorizontalOptions="CenterandExpand" />
double sliderStep;
public double SliderStep
{
get
{
return sliderStep;
}
set { sliderStep = value;
OnPropertyChanged("SliderStep");
}
}
double sliderMax;
public double SliderMax
{
get
{
return sliderMax;
}
set {
sliderMax = value;
OnPropertyChanged();
}
}
public SectionGraphicviewmodel(INavigation navigation)
{
this.Navigation = navigation;
sectionRep = new SectionRepository();
this.Sections = sectionRep.GetSections().ToList();
Items = new List<SectionGraphicModel>();
foreach (var item in this.Sections)
{
var SectionView = new SectionModel(item);
Items.Add(new SectionGraphicModel(){ Source = SectionView.CachedImageUsed.source,Desc = SectionView.Desc,Id = SectionView.Id });
}
SliderMax = items.Count();
if (sectionId.HasValue)
{
SliderStep = items.Findindex(x => x.Id == sectionId);
}
else
{
SliderStep = 0;
}
}
此示例中的最大值为16,我测试了不同的值,结果是相同的。 我仅在Android模拟器上进行了测试。我不知道它是否会在iOS上发生。
PS:为避免引起误解,我需要使Maximum属性从VM绑定一个值,然后OneWay将从UI禁用控件,仅显示VM的值。
解决方法
您应该以确保“最大值”始终大于“最小值”的顺序设置属性,在xaml中“最大值”应设置在“最小值”之前:
In [19]: eigen_values = np.array([1,0.5,0.1])
In [20]: scale = 1.0
In [21]: np.diag(np.exp(-scale*eigen_values))
Out[21]:
array([[0.36787944,0.,0. ],[0.,0.60653066,0.90483742]])
In [22]: np.exp(-scale*np.diag(eigen_values))
Out[22]:
array([[0.36787944,1.,1. ],[1.,0.90483742]])
如果要禁用UI,请设置:
import pandas as pd
import matplotlib.pyplot as plt
#cleaning the csv file
fh=pd.read_csv('Documents/ads/2019 T1_12.csv',skiprows=[0,1,3,9,15,21,27,30,31,32,33,34,35])
fh=fh.drop('Total',axis=1)
fh=fh.drop('Others',axis=1)
#plotting
plt.plot(fh['Year'],fh['Germany'])
plt.plot(fh['Year'],fh['USA'])
plt.ylabel('Number of Emigrants',fontsize=17)
plt.xlabel('Years',fontsize=17)
fh.index
fh.head()
,
我没有正确阅读问题。问题只是绑定模式
Value="{Binding SliderStep,Mode=TwoWay}
这应该做到。
PS :每当您上传示例存储库时,都会从所有共享项目和目标项目中删除所有bin / obj文件。您的项目小于2 MB,但是由于bin / obj而我下载的zip为50+ MB。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。