У меня есть код, который устанавливает тип данных. Достаточно часто, datacontext должен быть установлен в некоторый базовый набор данных, такой как ObservableCollection
, но иногда я хотел бы установить его в коллекцию, которая сама по себе является свойством зависимости.WPF/Silverlight: привязка данных к файлу datacontext к программному обеспечению
Это можно сделать в xaml, но при этом происходит поражение цели, которая заключается в том, чтобы разделить код пользовательского интерфейса между обоими сценариями.
Скажем, у меня есть свойство зависимостей:
public static readonly DependencyProperty MyDataProperty = [whatever];
и в другом месте, у меня есть контроль, который ожидает меня для настройки DataContext:
myGreatControl.DataContext = ???
Как я могу установить выше DataContext для обозначения к коллекции, хранящейся в свойстве зависимостей?
Следующий вопрос кажется связанным: Silverlight: Programmatically binding control properties
Но я хотел бы, чтобы не связывать одно свойство к другому, но свойство к DataContext. Преимущество этого заключается в том, что мне не нужно знать тип или имя или даже цель в коде привязки - любой FrameworkElement
имеет datacontext, и у меня есть (обновляемое) свойство, которое я хотел бы привязать к нему.
Я не совсем уверен, что вы получаете - если бы я это сделал, мне нужно было бы изменить xaml для каждого случая.Я пытаюсь в общем использовать определенный элемент управления и программно «подключаю его» к тому, что происходит в источнике - поэтому элемент управления не знает времени компиляции, действительно ли я привязываюсь к «MyProperty» или некоторому коду -для коллекции. Вот почему я хочу иметь возможность привязываться к коллекции напрямую или к другому имуществу. –