如何将属性绑定到另一个UserControl?

时间:2017-03-30 06:38:22

标签: c# wpf data-binding

ItemsControl与一组对象相关联。作为模板,使用了另外两个UserControl,它们需要将属性与集合对象的属性相关联。我这样做:

<local:DayControl Date="{Binding Date}"/>
<local:IntervalControl Intervals="{Binding Intervals}"/>

但它不起作用!我们必须这样做:

<TextBlock x:Name="date" Text="{Binding Date}" Visibility="Hidden"/>
<ItemsControl x:Name="items" ItemsSource="{Binding Intervals}"/>
<local:DayControl Date="{Binding ElementName=date, Path=Text}"/>
<local:IntervalControl Intervals="{Binding ElementName=items, Path=ItemsSource}"/>

如何正确做到?

1 个答案:

答案 0 :(得分:0)

检查Binding值的数据类型以及控件所期望的内容。

If you want to databind ... properties that have incompatible types, you need a piece of code in between, that converts the value from source to target type and back.

您的代码隐藏似乎需要一个转换器,此时您通过TextBlock(到String)和ItemsControl(到IEnumerable?)进行隐式类型转换。