У меня есть UserControl, который содержит 4 ToggleButtons, и я хотел бы вызвать настраиваемое событие, которое может прослушивать заинтересованный объект, которое предоставляет состояние, основанное на проверенных значениях ToggleButton, а также значениях из объекта DataContext.
Получение проверенных значений ToggleButton и получение статуса достаточно просты, однако я не могу понять, как получить доступ к объекту DataContext в коде C #.
Например, если заинтересованный объект получает RoutedEvent от UserControl, я бы хотел, чтобы он мог получить доступ к значениям из объекта DataContext UserControl.
Нужно ли мне предоставлять конкретные свойства из объекта DataContext или я могу каким-либо образом предоставлять объект DataContext из API UserControl?
Update.
Чтобы объяснить проблему немного подробнее, у меня есть список элементов, который создает набор экземпляров UserControl в контейнере, я прикрепляю прослушиватели событий к каждому элементу по мере его добавления в контейнер и отправляю событие из одного из UserControls. когда дочерние элементы управления нажимаются / проверяются и т. д.
Получить ссылку на UserControl, который отправил событие, достаточно просто, но я не могу получить доступ к объекту DataContext, нужно ли назначить открытое свойство для предоставления объекта DataContext ...
, например
private ControlViewModel myControlViewModel;
public ControlViewModel MyControlViewModel {
get { return myControlViewModel; }
set
{
this.DataContext = value;
myControlViewModel = value;
}
}
или есть лучший способ?
Любые советы будут оценены, спасибо.