Я пытаюсь синхронизировать прокрутку между двумя datagrids, так что каждый прокрутка зеркалируется между ними (горизонтальная или вертикальная прокрутка), после того, как я начал выполнять мой метод, но установщик вызов из моего стиля прокрутки никогда не вызывает объект зависимости, чтобы установить значение.Зависимость Свойство не установлено из стиля
Это моя сетка данных.
<dataGridEx:DataGridEx ColumnHeaders="{Binding SystemMonitorValues.ColumnHeaders}"
ItemsSource="{Binding SystemMonitorValues.Rows}"
Style="{StaticResource DataGridStyle}"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto">
<dataGridEx:DataGridEx.Resources>
<Style TargetType="{x:Type ScrollBar}">
<Setter Property="Background" Value="Red"/>
<Setter Property="scroll:ScrollSynchronizer.ScrollGroup" Value="Group1" />
</Style>
</dataGridEx:DataGridEx.Resources>
</dataGridEx:DataGridEx>
Так в стиле прокрутки бар я пытаюсь установить ScrollSynchronizer.ScrollGroup
иметь значение «Group1».
Мой ScrollSynchronizer
настроен следующим образом:
public class ScrollSynchronizer : DependencyObject
{
public static readonly DependencyProperty ScrollGroupProperty = DependencyProperty.Register(@"ScrollGroup",
typeof(string), typeof(ScrollSynchronizer), new PropertyMetadata(new PropertyChangedCallback(OnScrollGroupChanged)));
static ScrollSynchronizer()
{
}
public string ScrollGroup
{
get
{
return (string)this.GetValue(ScrollGroupProperty);
}
set
{
this.SetValue(ScrollGroupProperty, value);
}
}
private static void OnScrollGroupChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var scrollViewer = d as System.Windows.Controls.ScrollViewer;
...
}
Я положил контрольную точку в OnScrollGroupChanged
метода, который является PropertyChangedCallback
для DependencyProperty
, но по каким-то причинам это никогда не попадает.
Я знаю, что стиль работает, поскольку фон полосы прокрутки устанавливается на Red
, но наборщик для ScrollGroup
, похоже, не хочет быть вызванным, это также показано в Snoop тем, что стиль установлен правильно с двумя сеттерами и даже установщиком для точки ScrollSynchronizer
на правильный объект.
Я просто в недоумении, почему это не задано.
Yup, полностью пропустил это. Я думал, что что-то пропустил, создав «DependencyProperty». Спасибо. –