如何将Viewmodel中的值绑定到视图中的usercontrol

时间:2013-05-15 13:50:51

标签: wpf data-binding mvvm user-controls

我有一个包含usercontrol的窗口。 usercontrol有一个依赖项值,我需要将其绑定到windows viewmodel上的值。

但是,无论我尝试什么,我最终都会使用null

所以,是时候提出一些代码了。

这是我添加usercontrol的地方,我认为这是我遇到问题的地方。 我正在尝试将usercontrol上的“PlantToSearch”属性绑定到viewmodel中的“SelectedPlant”。

    <my:BomSearchControl Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Left"
                             PlantToSearch="{Binding RelativeSource={RelativeSource 
                                FindAncestor, AncestorType={x:Type local:SaveAsWindow}},
                                Path=DataContext.SelectedPlant}"
                         Margin="4" VerticalAlignment="Top" >
    </my:BomSearchControl>

我试图将它指向SaveAsWindow的datacontext,但这似乎不起作用。

在我的BomSearchControl上,我有以下代码,用于依赖属性:

public static DependencyProperty PlantToSearchProperty = DependencyProperty.Register("PlantToSearch", typeof(Plant), typeof(BomSearchControl));

    public Plant PlantToSearch
    {
        get { return (Plant)GetValue(PlantToSearchProperty); }
        set { SetValue(PlantToSearchProperty, value); }
    }

1 个答案:

答案 0 :(得分:0)

所以,这真是令人尴尬。 在viewmodel中设置后,我忘了在UI中更新我的属性。

所以基本上,修复是在我的setter中添加OnPropertyChanged

    private Plant _selectedPlant;
    public Plant SelectedPlant
    {
        get { return _selectedPlant; }
        set 
        { 
            _selectedPlant = value;
            OnPropertyChanged("SelectedPlant");
        }
    }