我有控制库和WPF应用程序。我需要创建我的自定义控件来vizualize图形。所以我创建了GraphControl并设置了自定义属性GraphData:
public static readonly DependencyProperty GraphDataProperty = DependencyProperty.Register("GraphData", typeof(Graph), typeof(GraphControl));
public Graph GraphData
{
get { return (Graph)GetValue(GraphDataProperty); }
set
{
SetValue(GraphDataProperty, value);
TextBlock.Text = "asdfasdfasdfasdfasd";
}
}
此部分已完成,但现在我想将GraphData绑定到嵌套GraphControl的应用程序的MainWindow中的属性。我的意思是我想在MainWindow中更改一些graphData属性,当我这样做时,图形重新渲染,所有渲染都发生在控件内,而不是窗口。例如:
<controls:GraphControl x:Name="GraphControl" GraphData="{Binding GraphData}"/>
如果我在Window中创建新的DependencyProperty,则所有更改都在窗口中处理,而不是控制。
答案 0 :(得分:1)
据我所知,您希望将控件的属性绑定到窗口上的属性而不是DataContext上。 如果是这种情况,您可以使用RelativeSource属性来实现它,如下所示:
<controls:GraphControl x:Name="GraphControl" GraphData="{Binding Path=GraphData, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"/>