我尝试通过引入新的用户控件来重构这样的XAML:
<Window ...>
<ComboBox ItemsSource="{Binding Greetings}" />
</Window>
添加控件后我有
ControlA XAML:
<UserControl ...>
<ComboBox ItemsSource="{Binding Items}" />
</UserControl>
ControlA C#:
public static readonly DependencyProperty ItemsProperty =
WpfUtils.Property<IEnumerable, ControlA>("Items");
public IEnumerable Items { get; set; }
新窗口XAML:
<Window ...>
<uc:ControlA Items="{Binding Greetings}" />
</Window>
在此之后,我在ComboBox中看不到任何内容。这有什么不对?
答案 0 :(得分:0)
您的ComboBox绑定到DataContext。由于您的DataContext仍然是一个带有名为Greetings的列表的对象,因此无法正常工作......
你的ContolA应该像这样:
<UserControl x:Name="Root" ...>
<ComboBox ItemsSource="{Binding ElementName=Root, Path=Items}" />
</UserControl>
现在,你的组合框绑定到ControlA的Items属性,而不是你的DataContext属性......
希望这会有所帮助..