У меня есть пользовательский элемент управления для навигации по данным в Silverlight, который открывает дочернее окно, где пользователь может вводить критерии поиска, и когда они нажимают «Применить», предполагается обновить свойство привязки в ViewModel (шаблон MVVM.)
Ссылки: SearchDialog <-> DataNavigator <-> MyView <-> MyViewModel
Кажется, что свойство зависимости в SearchDialog работает, когда я устанавливаю его значение, оно отображается в DataNavigator; однако, когда свойство зависимости изменяется, кажется, что от DataNavigator к MyView / MyViewModel не отправляется уведомление.
SearchDialog наследуется от ChildWindow:
public string Search
{
get { return (string)GetValue(SearchProperty); }
set { SetValue(SearchProperty, value); }
}
public static readonly DependencyProperty SearchProperty =
DependencyProperty.Register("Search", typeof(string), typeof(SearchDialog),
new PropertyMetadata(null));
DataNavigator наследуется от UserControl:
public Binding Search { get; set; }
private void DataNavigator_Loaded(object sender, Windows.RoutedEventArgs e)
{
if (Search != null)
this._searchDialog.SetBinding(SearchDialog.SearchProperty, Search);
}
MyView является производным от SilverlightFX.UserInterface.Navigation.Page:
<DataNavigator MovePreviousAction="$model.MovePrevious()"
CurrentIndex="{Binding CurrentIndex, Mode=TwoWay}"
MoveNextAction="$model.MoveNext()"
SaveAction="$model.SaveChanges()"
IsLoading="{Binding IsLoading, Converter={StaticResource VisibilityConverter}}"
Search="{Binding SearchString, Mode=TwoWay}"/>
MyViewModel наследуется от ViewModel:
public string SearchString
{
get { return this._search; }
set
{
if(value != this._search)
{
this._search = value;
this.RaisePropertyChanged("SearchString");
}
}
}
Я часами пытался найти проблему, но безуспешно; кто-нибудь видит проблему? Заранее спасибо,