У меня есть несколько TabControl
, определенных в моем XAML. Я хотел бы, чтобы моя ViewModel знала имя TabItem
или индекс выбранного TabItem
.
У меня также есть ScrollViewer
, который я хотел бы всегда прокручивать вниз при каждом нажатии кнопки.
Я мог бы решить обе вышеупомянутые проблемы, если бы мог каким-то образом получить доступ к элементам в моем коде.
Как я могу получить что-то вроде этого:
var tabIndex = this.GetElement<TabControl>("NameOfSomeTabControl").SelectedIndex;
var scrollViewer = this.GetElement<ScrollViewer>("NameOfSomeScrollViewer");
scrollViewer.VerticalScrollBarValue = scrollViewer.VerticalScrollBarMaximum;
Редактировать: код для xaml , viewModel code
Редактировать 2:
Похоже, я могу получить экземпляр элемента из класса окна , однако я все еще не уверен, как передать ссылку на ViewModel.
Редактировать 3: я могу добиться того, чтобы просмотрщик прокручивался автоматически, используя код ниже. однако после вызова этого метода кажется, что прокрутка отключена.
var tbRaw = this.Get<TextBlock>("tbRawOutput");
tbRaw.PropertyChanged += (s,e) => {
var svRaw = this.Get<ScrollViewer>("svRawOutput");
svRaw.Offset = new Vector(svRaw.Offset.X, svRaw.Extent.Height -svRaw.Viewport.Height);};