如何在B条目的条目文本中输入文本,反之亦然?
我对Xamarin表单开发非常陌生。
ViewModal:下面是Entry字段可绑定对象,这里每个字段都有其十进制验证。 要求:如果条目文本发生变化,B条目文本应根据输入的文本进行更改,反之亦然。
在这里,我在处理OnPropertyChanged方面遇到了问题。
private string _inputValues_PercentTimer;
public string InputValues_PercentTimer
{
get { return _inputValues_PercentTimer; }
set
{
_inputValues_PercentTimer = CalculationActions.DecimalValidation(value, _inputValues_PercentTimer, 1, 0.0, 100.0, "");
OnPropertyChanged("InputValues_PercentTimer");
}
}
private string _inputValues_AppDepth;
public string InputValues_AppDepth
{
get { return _inputValues_AppDepth; }
set
{
_inputValues_AppDepth = CalculationActions.DecimalValidation(value, _inputValues_AppDepth, 3, 0.000, 100.00, "");
OnPropertyChanged("InputValues_AppDepth");
}
}
答案 0 :(得分:0)
抱歉英语不好
使用A条目与您的viewmodel绑定,并在B条目中,进行交叉引用绑定(我不确定这是正确的术语)。
This link是关于绑定基础知识的,它可能对您有帮助。
以下是一些XAML代码: ...
<Slider x:Name="sdrMediumBattery"
HorizontalOptions="FillAndExpand"
Value="{Binding MediumBattery}"`
Maximum="100"
Margin="0,0,0,10"/>
...
<Label x:Name="lblMediumBattery"
BindingContext="{x:Reference sdrMediumBattery}"
FontSize="Large"
HorizontalTextAlignment="Center"
WidthRequest="50"
Text="{Binding Value, StringFormat='{0:#00}'}"/>
我正在使用'sdrMediumBattery'视图(滑块)中的属性'Value'并绑定到Label的'Text'属性。滑块绑定到我的viewmodel。
答案 1 :(得分:0)
我已经解决了这个问题,防止了依赖属性之间的死锁。谢谢大家的支持。
private string _inputValues_PercentTimer;
public string InputValues_PercentTimer
{
get { return _inputValues_PercentTimer; }
set
{
if (_inputValues_PercentTimer != value && !string.IsNullOrEmpty(value))
{
_inputValues_PercentTimer = CalculationActions.DecimalValidation(value, _inputValues_PercentTimer, 1, 0.0, 100.0, "");
double calRes = 5 + double.Parse(_inputValues_PercentTimer);
_inputValues_AppDepth = calRes.ToString();
OnPropertyChanged("InputValues_AppDepth");
OnPropertyChanged("InputValues_PercentTimer");
}
}
}
private string _inputValues_AppDepth;
public string InputValues_AppDepth
{
get { return _inputValues_AppDepth; }
set
{
if (_inputValues_AppDepth != value && !string.IsNullOrEmpty(value))
{
_inputValues_AppDepth = CalculationActions.DecimalValidation(value, _inputValues_AppDepth, 3, 0.000, 100.00, "");
double calRes = 5 + double.Parse(_inputValues_AppDepth);
_inputValues_PercentTimer = calRes.ToString();
OnPropertyChanged("InputValues_PercentTimer");
OnPropertyChanged("InputValues_AppDepth");
}
}
}