【发布时间】:2012-02-06 01:17:27
【问题描述】:
我有一个这样的分层类
Part
SubPart
SubSubPart1
SubSubPart2
我有一个由 SubSubPart 填充的控件,我想在该控件中显示有关父 SubPart 和 Part 的信息。我想在 xaml 中使用普通绑定来显示有关父部件的信息。
每个部分都有一个唯一的 ObjectId 作为属性,每个部分都有多个我要显示的属性。
控件只知道一个子子部分。
我意识到我可以写一个转换器
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
{
if (DesignerProperties.GetIsInDesignMode(new DependencyObject()))
{ return "Design Part"; }
else
{
IDataService applicationService = ServiceLocator.Current.GetInstance<IDataService>();
IPartItem partItem = applicationService.GetEquipmentFromComponent(value.ToString());
return partItem.PartData.Name;
}
}
并像这样应用它
<TextBlock Grid.Row="0" Grid.Column="1"
Text="{Binding Path=ObjectId,Converter={StaticResource partConverter}}" Margin="0,0,10,0">
</TextBlock>
但是我需要为父部件的每个属性编写一个转换器。任何解决方案。
【问题讨论】:
-
SubSubPart 对象没有对父 SubPart 对象的引用吗?如果他们这样做,您可以使用 Path=MySubPart.ParentPart.Name 之类的东西。
标签: wpf xaml binding converter