如果父级的数据源有一个属性是集合的子属性(假设它被称为ChildCollection)是否有引用它的技巧?WPF绑定到子集合
所以,这个代码示例基本上是我试图做的。但是当我使用这种方法时,我没有得到任何数据到我的子控件。
<UserControl>
<UserControl.Resources>
<sample:Data x:Key="MyData" />
</UserControl.Resources>
<Canvas DataContext="{StaticResource MyData}">
<TextBlock Text="{Binding Title}" />
<My:UserControl DataContext="{Binding ChildCollection}" />
</Canvas>
</UserControl>
我的依赖属性看起来是这样的:
public static readonly DependencyProperty DataProperty =
DependencyProperty.Register("Data", typeof(IEnumerable), typeof(ButtonList),
new UIPropertyMetadata(new PropertyChangedCallback(DataChanged)));
public DoubleCollection Data
{
get { return (DoubleCollection)GetValue(DataProperty); }
set { SetValue(DataProperty, value); }
}
static void DataChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
(sender as FrameworkElement).DataContext = e.NewValue;
}
public void SetData(IEnumerable data)
{
(View as CollectionViewSource).Source = data;
}
预先感谢您的帮助。
PS:也尝试DynamicResource替代StaticResource的为您的DataContext面板上的绑定。 – JanW 2010-08-10 14:21:43
画布来自Panel。所有FrameworkElements都提供了DataContext继承。 – 2010-08-11 05:42:04
那是不对的。框架组件不会继承它的DataContext。因为我没有使用Canvas进行测试,所以我提到了它。 – JanW 2010-08-11 06:37:15