无法绑定用户控件的依赖项属性

本文关键字:依赖 属性 控件 绑定 用户 | 更新日期: 2023-09-27 17:53:05

我有一个主UI,我在其中调用了UserControl1(图表控件)。图表控件有以下依赖项属性:

  • ChartTitle

  • ChartDataDetails

在UserControl1中,我已经调用了另一个UserControl2(多图表控件)。它有一些依赖属性,比如

  • MultichartInputData等。

我的问题是当我启动主UI时,我无法将DataStoreDetail属性绑定到UserControl1的DP (ChartDataDetail)。SetPointModel.cs中定义的DataStoreDetail属性,它在SetPointVM中被引用,SetPointVM是主UI的ViewModel。

MainUI.xaml:

<Charting:ChartControl x:Uid="Charting:ChartControl_1"
    ChartDataDetails="{Binding Path=Model.DataStoreDetails, Mode=TwoWay,
    diag:PresentationTraceSources.TraceLevel=High}"/>

UserControl1:

<multicharting:MultiChartControl x:Uid="multicharting:MultiChartControl_1"
    x:Name="MultiChart" MultiChartInputDetails="{Binding MultiChartsInputDetails,
    Mode=TwoWay, "/>

UserControl1和UserControl2之间的绑定工作正常,MainUI和UserControl1之间的绑定出现问题。

DP in UserControl1:

public DataDetails ChartDataDetails
{
    get { return (DataDetails)GetValue(ChartDataDetailsProperty); }
    set { SetValue(ChartDataDetailsProperty, value); }
}
public static readonly DependencyProperty ChartDataDetailsProperty =
    DependencyProperty.Register("ChartDataDetails",
    typeof(DataDetails), typeof(ChartControl),
    new UIPropertyMetadata(new PropertyChangedCallback(ChartDataDetailsChanged)));

无法绑定用户控件的依赖项属性

尝试对提到的UserControls使用相同的ViewModel,并相应地设置它们的DataContexts。

尝试更改UserControls上的DataContext:

Binding="{Binding RelativeSource={RelativeSource FindAncestor, 
 AncestorType={x:Type Window}}, Path=DataContext.DataStoreDetails}" ...