Допустим, у меня есть два вида: FileList
и Editor
. Они обе имеют свои собственные модели представлений, связанные с помощью DependencyProperty
. Модели представлений выглядят примерно так:
public class FileVM : INotifyPropertyChanged
{
public string FileName { get; set; }
}
public class FileListVM : INotifyPropertyChanged
{
public ObservableCollection<FileVM> Files { get; set; }
public FileVM SelectedFile { get; set; }
}
public public class EditorVM : INotifyPropertyChanged
{
string FileName { get; set; }
}
Представьте, что они правильно реализуют INotifyPropertyChanged
.
Теперь я не хочу, чтобы FileListVM
и EditorVM
знали друг о друге , Они могут так же легко существовать независимо. Но в одном случае я хотел бы связать FileListVM.SelectedFile.FileName
с EditorVM.FileName
. Всякий раз, когда выбранный файл или имя файла изменяется, имя файла в редакторе также должно изменяться. И всякий раз, когда редактор изменяет имя файла в редакторе, так должно и имя выбранного файла.
Теперь вот мой вопрос: как я могу сделать это чисто? Я предполагаю, что решение лежит где-то в их родительской модели представления (например, MainVM
), так как эта модель представления знает о связи между двумя дочерними моделями представления. Но я не уверен, смогу ли я соединить их через xaml, и я хотел бы избежать записи обработчиков событий, измененных свойством, если это возможно.