我有两个视图模型(每个都有自己的模型):AmendmentViewModel YearViewModel
每个人都有一个属性: AmendmentViewModel.TotalAmended YearViewModel.TotalCommitted
视图上有一个TabControl,每个视图模型都是一个选项卡控制页面的数据文本。是的,我知道我在技术上可以使用一个视图模型,但是它有大量的代码和一个大的视图,将放在一个表控件中。
如何将TextBox的绑定设置为AmendmentViewModel.TotalAmended & YearViewModel.TotalCommitted之和?
发布于 2011-01-12 04:01:18
您可以将MultiBinding与IMultiValueConverter一起使用。您可以找到一个示例这里。
编辑:
下面是一个例子:
<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();
}
}https://stackoverflow.com/questions/4665153
复制相似问题