2011-11-11 227 views
0

我在從標準屬性更新依賴項屬性時遇到了一些問題。清除依賴項屬性

如果我將屬性設置爲null或用新數據更新它,我的印象是它會重置依賴項屬性。然而,它看起來只是將新數據堆積在上面。

這裏有幾個屬性/依賴屬性我使用的:

依賴屬性

public static readonly DependencyProperty DataTableChartProperty = DependencyProperty.Register 
    ("DataTableChart", typeof(DataTable), typeof(MainWindowViewModel)); 

public static readonly DependencyProperty ContentElementProperty = DependencyProperty.Register 
    ("ContentElement", typeof(FrameworkElement), typeof(MainWindowViewModel)); 

標準屬性

public DataTable DataTableChart 
{ 
    get { return (DataTable)this.GetValue(DataTableChartProperty); } 
    set { this.SetValue(DataTableChartProperty, value); } 

public FrameworkElement ContentElement 
{ 
    get { return (FrameworkElement)this.GetValue(ContentElementProperty); } 
    set { this.SetValue(ContentElementProperty, value); } 
} 

我將不勝感激的任何建議。提前致謝!

這是我如何設置它現在...測試...

void _bw_DoWork(object sender, DoWorkEventArgs e) 
    { 
     var loadLog = new LoadLog(); 
     e.Result = loadLog.LoadCaseLogs(SelectedFiles); 
    } 

    void _bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
    { 
     DataTableChart = null; 
     ContentElement = null; 
     ContentElement = blah; 
     DataTableResult = e.Result as DataTable; 
     DataTableChart = caseData.LoadUserData(DataTableResult); 

     LoadingScreen = false; 
    } 

public ChartControl blah = new ChartControl(); 
+1

你是什麼意思*它看起來像是它只是堆積頂部的新數據*?請告訴我們你是如何設置財產,因爲這沒有多大意義。調用'DataTableChart = null'應該是你所需要的。 –

+1

我試着把它設置爲空,沒有爲我工作 – rreeves

+1

好吧,我明白你的意思了。 –

回答

4

依賴屬性是使用ClearValue方法清除,將其設置爲null只是將它設置爲null,這是不是一樣。

+0

所以我會做類似blah.clearvalue(DataTableChart)? – rreeves

+0

@rreeves:是的,除了你傳遞屬性字段,即'DataTableChartProperty'。 –