我有一个包含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); }
}
答案 0 :(得分:0)
所以,这真是令人尴尬。 在viewmodel中设置后,我忘了在UI中更新我的属性。
所以基本上,修复是在我的setter中添加OnPropertyChanged
。
private Plant _selectedPlant;
public Plant SelectedPlant
{
get { return _selectedPlant; }
set
{
_selectedPlant = value;
OnPropertyChanged("SelectedPlant");
}
}