[英]WPF bindings in window and user control
我有控件庫和WPF應用程序。 我需要創建我的自定義控件以使圖形更生動。 因此,我進行了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,則所有更改都在window中處理,而不是在控件中處理。
據我了解,您想將控件的屬性綁定到窗口上的屬性,而不是DataContext上的屬性。 在這種情況下,您可以使用RelativeSource外觀來實現,如下所示:
<controls:GraphControl x:Name="GraphControl" GraphData="{Binding Path=GraphData, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.