我尝试开始学习WPF
,我正在使用Telerik
。
所以我从this文章中的简单ComboBox
开始,这是我的控制:
<telerik:RadComboBox Height="20" Width="200" ItemsSource="{Binding Source={StaticResource DataSource}, Path=Agency}"></telerik:RadComboBox>
我现在要做的是绑定一个对象,但首先在XAML中声明一个资源(来自文章):
<UserControl.Resources>
<example:AgencyViewModel x:Key="DataSource"/> // AgencyViewModel is a class
</UserControl.Resources>
所以我的问题是UserControl
我没有选择Resources
之后,我试着把它放在我的控制范围内,所以我很高兴知道这是如何工作的WPF
{1}}
答案 0 :(得分:5)
您必须在父控件上设置与您的ComboBox相关的 DataContext 依赖项属性。然后,所有(逻辑)子节点都继承DataContext。然后,您可以绑定到DataContext依赖项属性引用的对象上的属性。您可以通过使用 StaticResource标记扩展构造引用资源的 x:Key 来实现此目的。
<UserControl>
<UserControl.Resources>
<example:AgencyViewModel x:Key="DataSource"/> // AgencyViewModel is a class
</UserControl.Resources>
<Grid DataContext="{StaticResource DataSource}">
<telerik:RadComboBox Height="20" Width="200"
ItemsSource="{Binding ItemsCollectionDefinedInViewModel}" />
</Grid>
</UserControl>
您也可以在文章中完成此操作,而无需设置DataContext,而是设置绑定说明的来源。
ItemsSource="{Binding Source={StaticResource DataSource}, Path=Agency}"