XAML ComboBox绑定到属性

时间:2010-05-03 03:31:47

标签: xaml binding

如果我的C#中有属性,

    public CollectionView Months
    {
        get 
        {
            CollectionView retList = new Enumerations.Months().ToCollectionView<Enumerations.Months>();
            return retList;
        }
    }

我有一个ComboBox;

<ComboBox x:Name="ddlMonth" Grid.Row="3" Grid.Column="1" 
ItemsSource="{Binding Source={StaticResource Months}}"/>

如何将我的ComboBox绑定到我的属性?

我应该补充说我是一个完整的xaml新手。

1 个答案:

答案 0 :(得分:3)

首先,这不是一个方法 - 它是一个属性。

你所要做的就是:

<ComboBox x:Name="ddlMonth" Grid.Row="3" Grid.Column="1" ItemsSource="{Binding Months}"/>

诀窍是确保属性Months出现的任何类被设置为ComboBox的DataContext或其父类之一(包括Page)。

因此,如果Months属性出现在承载ComboBox的同一页面中,那么您可以在构造函数或页面的Loaded事件中添加以下代码行:

this.DataContext = this;

如果Months属性出现在ViewModel中(我希望它可以!),那么您需要将ViewModel分配给页面的DataContext(或者仍然是父级的辅助控件) (祖先)ComboBox)。