У меня плохое знание английского, потому что я не являюсь носителем английского языка.
Я создал поведение, следующее за работой с элементом управления TextBox. У поведения есть DP типа коллекции с именем Items.
class HighlightBehavior : Behavior<TextBox>
{
public List<TextStyle>Items
{
get { return (List<TextStyle>)GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
}
public static readonly DependencyProperty ItemsProperty =
DependencyProperty.Register("Items", typeof(List<TextStyle>), typeof(HighlightBehavior), new PropertyMetadata(ItemsChanged));
private static void ItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// break point
}
}
И ... Я создал MainWindow для использования в качестве приведенного выше кода поведения.
<MainWindow>
<TextBox>
<i:interaction.Behaviors>
<behavior:HighlightBehavior/>
</i:interaction.Behavior>
</TextBox>
</MainWindow>
И я написалMainWindowViewModel, который имеет DP типа коллекции с именем HighlightItems.
class MainWindowViewModel : ViewModelBase
{
public List<TextStyle> HighlightItems
{
get { return (List<TextStyle>)GetValue(HighlightItemsProperty ); }
set { SetValue(HighlightItemsProperty , value); }
}
public static readonly DependencyProperty HighlightItemsProperty =
DependencyProperty.Register("HighlightItems", typeof(List<TextStyle>), typeof(HighlightBehavior), new PropertyMetadata(null));
public MainWindowViewModel()
{
SetValue(HighlightItemsProperty, new List<TextStyle>());
}
}
И я связал MainWindowViewModel с MainWindow и соединил HighlightItems (DP) MainWindowViewModel с элементами (DP) HighlightBehavior в качестве следующего кода.
<MainWindow>
<TextBox>
<i:interaction.Behaviors>
<behavior:HighlightBehavior Items="{Binding HighlightItems, Mode=TwoWay}"/>
</i:interaction.Behavior>
</TextBox>
</MainWindow>
Подводя итог, структура выглядит следующим образом.
Я ожидал, что ItemsChanged of HighlightBehavior вызывается всякий раз, когдаПредметы изменены. Но он не вызывается.
Я хочу получать уведомления всякий раз, когда DP-тип коллекции (Items) HighlightBehavior изменяется. Что я должен сделать, чтобы достичь этой цели?
Спасибо за чтение. Я подожду ответа.