我有ListBox
,ListBox.ItemTemplate
需要UserControl
。问题是UserControl
数据绑定无效。
<ListBox ItemsSource="{Binding MyCollection, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<DockPanel>
<local:MyUserControl Data1="{Binding Path=MyData}" />
</DockPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
当我这样做时Data1
保持为NULL。如果我要删除绑定并只是像这样发送一些值;
<local:MyUserControl Data1="Bob" />
UserControl
有效(虽然现在由于硬编码而无效)。
以下是Data1
中UserControl
的声明。
public static readonly DependencyProperty
Data1Property = DependencyProperty.Register("Data1", typeof(string), typeof(MyUserControl));
public string Data1
{
get { return (string)GetValue(Data1Property); }
set { SetValue(Data1Property, value); }
}
最后一点请注意,如果我从UserControl
中提取ListBox
并将其与其他一些数据绑定,则它可以正常工作。