我尝试开始学习WPF
,并且正在使用Telerik
。
所以我从this文章中的简单ComboBox
开始,这是我的控件:
<telerik:RadComboBox Height="20" Width="200" ItemsSource="{Binding Source={StaticResource DataSource}, Path=Agency}"></telerik:RadComboBox>
我现在想做的是绑定(bind)一个对象,但首先要在XAML中声明一个资源(来自本文):
<UserControl.Resources>
<example:AgencyViewModel x:Key="DataSource"/> // AgencyViewModel is a class
</UserControl.Resources>
所以我的问题是,在
UserControl
之后,我没有选项Resources
,我尝试将其放入控件中,因此我很高兴了解它在WPF
中的工作方式 最佳答案
您必须在与ComboBox相关的父控件上设置 DataContext 依赖项属性。然后,所有(逻辑)子代都继承DataContext。然后,您可以将绑定(bind)到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,而是设置绑定(bind)显式的源。
ItemsSource="{Binding Source={StaticResource DataSource}, Path=Agency}"
关于c# - WPF UserControl.Resources引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27694855/