我得到了以下XAML:WPF等待綁定做
<ng:Chart Palette="TheTreesPalette">
<ng:Chart.Diagrams>
<Diagram Key="PersonnelHoursAWeek" For="{Binding}" Value="BarSeries3D" />
<Diagram Key="PersonId" For="{Binding}" Value="BarSeries3D" />
</ng:Chart.Diagrams>
</ng:Chart>
在代碼:
- 圖是一個普通的ContentControl中。
- 圖的是一個集合(和DependencyObject的),並從的DependencyProperty圖
- 圖是內圖表爲DependencyObject
我的圖表需要時,圖將被添加到圖列表進行更新。通過使用DependencyProperty.Register,我已經註冊了「Diagrams」列表,但它不會等待綁定(所以當「事件」通過時,圖的For屬性爲空)。
chart.cs:
public static readonly DependencyProperty DiagramsProperty = DependencyProperty.Register("Diagrams", typeof(SkillsNG.Application.Behaviors.DiagramCollection), typeof(Chart), new UIPropertyMetadata(null, FunctionToCall));
private static void FunctionToCall(DependencyObject @this, DependencyPropertyChangedEventArgs e)
{
}
我能做些什麼來得到一個充滿對於財產?
順便說一下,事件「加載」仍然沒有綁定。
解釋更多一點: 圖表可以有多個條/線,For屬性會給數據集一個條/線(在我的示例中稱爲圖)。關鍵是它的DataMember。
該綁定是綁定到給視圖的模型。但是綁定可以是「Binding Set1」和「Binding Set2」(我想要顯示的行的數據集)。
綁定是100%正確的,我的圖表會顯示我什麼時候只等一秒鐘來綁定它。所以我希望那個圖表通知Chart它已經被更改,或者Chart可以添加一個事件(Diagram.ForProperty.AddOwner像施工)。
綁定是正確的,我添加了一些額外的文本到我的第一個問題。 – XiniX00
考慮到圖表和圖表綁定到相同的DataContext,您可以在Chart DataContextChanged事件中執行Dispatcher.BeginInvoke() - 在觸發子控件的時候將有它們的DataContext。但在我看來,你實際上希望圖表項目在For屬性更改時顯式調用Chart,如果情況如此,也許你應該在代碼中這樣做;即在圖DataContextChanged事件中查找父Chart,並調用一個方法來通知它刷新 - 或者如果要以Wpf方式播放它,則執行一個自定義Command。 – fubaar