Я чертовски стараюсь, чтобы моя привязка данных работала правильно.У меня есть основания полагать, что то, что я пытаюсь выполнить, не может быть сделано, но мы посмотрим, какие ответы я получу.
У меня есть UserControl.Этот UserControl не содержит ничего, кроме кнопки.Теперь внутри кода у меня есть имя свойства IsBookmarked.Когда установлен IsBookmarked, запускается код, который оживляет внешний вид кнопки.Идея состоит в том, что вы нажимаете кнопку, и она визуально меняется.Мы будем называть этот UserControl элементом управления Bookmark.
Теперь у меня есть другой элемент управления, который мы назовем FormControl.Мой FormControl содержит дочерний элемент управления Bookmark.Я пытался привязать данные к своему элементу управления Bookmark, но он не работает.Вот некоторый код, чтобы помочь вам.
Это обработчик событий XAML и Loaded моего элемента управления.Как вы можете видеть, он содержит дочерний элемент, который является пользовательским элементом управления (закладка).Поэтому, как только этот элемент управления загружается, его DataContext устанавливается на новый экземпляр объекта Employee.Silverlight также устанавливает свойство DataContext моего дочернего элемента управления закладками для того же экземпляра.Я подтвердил это путем отладки.Если у моего родителя есть допустимый набор DataContext, то почему я не могу привязать к нему данные моего дочернего элемента управления (закладки)?
<UserControl ......>
<q:Bookmark x:Name="BookMarkControl1" IsBookmarked="{Binding IsSiteBookmarked}" />
</UserControl>
public void Control_Loaded(object sender, EventArgs e)
{
DataContext = new Employee { IsSiteBookmarked = True };
}
Это мой пользовательский элемент управления ниже.Очевидно, он содержит больше, чем это, но для удобства чтения я обрезал его до свойства, к которому я пытаюсь привязать данные.
//this is the bookmark control. I've included this control within another control, and I'm trying to databind to properties within my parents DataContext
public partial class Bookmark : UserControl
{
bool _IsBookmarked= false;
public bool IsBookmarked
{
get {return _IsBookmarked;}
set {
_IsBookmarked= value;
SwitchMode(value);
}
}
}
ОБНОВЛЕНИЕ
Получилнекоторые ошибки JavaScript, которые я должен упомянуть.Firebug сообщает об исключении AG_E_PARSER_BAD_PROPERTY_VALUE.Похоже, моя привязка данных еще не работает.