gpt4 book ai didi

c# - 根据另一个 NumericUpDown 控件更新 NumericUpDown 值

转载 作者:行者123 更新时间:2023-11-30 20:47:53 26 4
gpt4 key购买 nike

伙计们,如果我的 XAML 中有 2 个数字 updown,就像这样

<Input:SfNumericUpDown Grid.Column="1" Margin="10,0,10,0"  Value="{Binding CompoundQty}" ValueChanged="SfNumericUpDown_ValueChanged"/>
<Input:SfNumericUpDown Grid.Column="4" Margin="10,0,10,0" Value="{Binding ResultQty}" Tag="{Binding ItemID}" />

我希望根据第一个 numericupdown 值更改第二个 numericupdown 值。我试着把它放在后面的代码中。

private void SfNumericUpDown_ValueChanged(object sender, Syncfusion.UI.Xaml.Controls.Input.ValueChangedEventArgs e)
{
var numCompoundQty = (SfNumericUpDown)sender;
foreach(var row in _entityEdited.ListCompoundDisplay)
{
if(row.ItemID == Convert.ToInt32(numCompoundQty.Tag))
{
row.CompoundQty = Convert.ToDecimal(numCompoundQty.Value);
row.ResultQty = Convert.ToDecimal(numDispenseQty.Value) * row.CompoundQty;
break;
}
}



}

但是还是不行,请问大家能帮我看看是什么问题吗?

最佳答案

您将在这里遇到问题,因为您正试图引用一个名为“numDispenseQty”的元素,您无权访问该元素(假设它在 DataTemplate 中)。您应该使用双向绑定(bind)到 View 模型,而不是处理“值更改”事件:

<Input:SfNumericUpDown Value="{Binding CompoundQty,Mode=TwoWay}" />

现在将更新逻辑放入“CompoundQty”属性的 setter 中,例如:

public double CompoundQty
{
get { return _compoundQty; }
set
{
_compoundQty = value;
UpdateResultQty();
RaisePropertyChanged("CompoundQty");
}
}

private void UpdateResultQty()
{
ResultQty = DispenseQty * CompoundQty;
}

请注意(如@sslazio1900 所述)您的 View 模型类必须实现 INotifyPropertyChanged,并在属性更改时引发 PropertyChanged 事件(这是 View 知道的方式 self 更新)。

关于c# - 根据另一个 NumericUpDown 控件更新 NumericUpDown 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com