【问题标题】:Clearing out a Dependency Property清除依赖属性
【发布时间】:2011-11-11 20:03:33
【问题描述】:

我在从标准属性更新依赖属性时遇到了一些问题。

如果我将属性设置为 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();

【问题讨论】:

  • 你的意思是什么它看起来只是把新数据堆在上面?请告诉我们您是如何设置属性的,因为这没有多大意义。致电DataTableChart = null 应该是您所需要的。
  • 我尝试将其设置为 null,但对我没有效果

标签: c# wpf dependency-properties


【解决方案1】:

使用ClearValue方法清除依赖属性,将其设置为null只是将其设置为null,这相同。

【讨论】:

  • 那么我会做类似的事情吗,blah.clearvalue(DataTableChart)?
  • @rreeves:是的,只是你传递了属性字段,即DataTableChartProperty
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 2011-01-03
  • 1970-01-01
  • 2010-12-24
相关资源
最近更新 更多