#c# #wpf #dependency-properties
#c# #wpf #зависимость-свойства
Вопрос:
У меня возникли некоторые проблемы с обновлением свойства зависимости из стандартного свойства.
Если я присвою свойству значение 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
должен быть всем, что вам нужно.2. Я попытался просто установить для него значение null, у меня не получилось
Ответ №1:
Свойства зависимости очищаются с помощью ClearValue
метода, установка его на null
— это просто установка его на null
, что не одно и то же.
Комментарии:
1. итак, я бы сделал что-то вроде, бла.clearvalue(DataTableChart)?
2. @rreeves: Да, за исключением того, что вы передаете поле свойства, которое является
DataTableChartProperty
.