繁体   English   中英

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

[英]Unable to bind dependency property of usercontrol

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

  • 图表标题

  • ChartDataDetails

在UserControl1中,我调用了另一个UserControl2(MultiCharting Control)。 其中有一些依赖属性,例如

  • 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之间的绑定存在问题。

UserControl1中的DP:

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)));

尝试对提到的UserControl使用相同的ViewModel并相应地设置其DataContexts。

要么

尝试更改您的UserControls上的DataContext:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM