WPF UserControl.Resources参考

时间:2014-12-29 19:32:53

标签: c# wpf telerik radcombobox

我尝试开始学习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}}

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}"