gpt4 book ai didi

c# - 绑定(bind)到来自两个不同 ViewModel 的两个属性的差异

转载 作者:行者123 更新时间:2023-12-03 10:24:37 24 4
gpt4 key购买 nike

我有两个 View 模型(每个都有自己的模型):
修正 View 模型
年 View 模型

每个都有一个属性:
AmendmentViewModel.TotalAmended
YearViewModel.TotalCommitted

在 View 上有一个 TabControl,每个 View 模型都是一个 tabcontrol 页面的数据上下文。是的,我知道我可以在技术上使用一个 View 模型,但它有很多代码和一个大 View 在选项卡控件中。

如何将 TextBox 的绑定(bind)设置为 AmendmentViewModel.TotalAmended 和 YearViewModel.TotalCommitted 的总和?

最佳答案

您可以使用 MultiBinding连同 IMultiValueConverter .你可以找到一个例子here .

编辑:

这是一个例子:

<Grid>
<Grid.Resources>
<sys:String x:Key="dataSource1">42</sys:String>
<sys:String x:Key="dataSource2">22</sys:String>
<local:SubtractionConverter x:Key="subtractionConverter"/>
</Grid.Resources>
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource subtractionConverter}">
<Binding Path="." Source="{StaticResource dataSource1}"/>
<Binding Path="." Source="{StaticResource dataSource2}"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>

和转换器:
public class SubtractionConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return (double.Parse((string)values[0]) - double.Parse((string)values[1])).ToString();
}

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

关于c# - 绑定(bind)到来自两个不同 ViewModel 的两个属性的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4665153/

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