我有一个主UI,我调用了UserControl1(图表控件)。 图表控件具有以下依赖属性:
ChartTitle
ChartDataDetails
在UserControl1中,我调用了另一个UserControl2(MultiCharting Control)。 它有一些依赖属性,如
我的问题是当我启动主UI时,我无法将DataStoreDetail属性绑定到UserControl1的DP(ChartDataDetail)。 SetPointModel.cs中定义的DataStoreDetail属性,在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)));
答案 0 :(得分:-1)
尝试对提到的UserControl使用相同的ViewModel,并相应地设置它们的DataContexts。
或
尝试更改UserControls上的DataContext:
Binding="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Window}}, Path=DataContext.DataStoreDetails}" ...