У меня есть UserControl как это:
<Button Grid.Row="1" X:Name="ChangeButton" Click="ChangeButton_Click">Change</Button>
Мой UserControl CodeBehind:
public static readonly DependencyProperty SelectedPersonProperty =
DependencyProperty.Register("SelectedPerson", typeof(PersonModel), typeof(MyControl),
new FrameworkPropertyMetadata
{
DefaultValue=null,
BindsTwoWayByDefault = true
});
public PersonModel SelectedPerson
{
get { return (PersonModel)GetValue(SelectedPersonProperty); }
set { SetValue(SelectedPersonProperty, value);}
}
public static readonly DependencyProperty TextValueProperty =
DependencyProperty.Register("TextValue", typeof(string), typeof(NumericTextBox),
new FrameworkPropertyMetadata{
BindsTwoWayByDefault=true
});
public string TextValue
{
get { return (string)GetValue(TextValueProperty); }
set {
SetValue(TextValueProperty, value);
}
}
public MyControl(){
SelectedPerson = new PersonModel();
}
private void ChangeButton_Click(object sender, RoutedEventArgs e)
{
TextValue="Hello";
SelectedPerson.Age = 12;
SelectedPerson.FirstName = "AA";
SelectedPerson.LastName = "BB";
}
В моем коде Xaml MainView я имею:
<UC:MyControl SelectedPerson="{Binding Person}" TextValue="{Binding Path=Name,UpdateSourceTrigger=PropertyChanged}" ></UC:MyControl>
<TextBox Grid.Row="1" Background="Yellow" Text="{Binding Path=Person.Name,UpdateSourceTrigger=PropertyChanged}" />
MainViewModelКод:
PersonModel person
public PersonModel Person {
get { return _person; }
set
{
if (_person!= value)//i set a breakpoint here
{
_person= value;
RaisePropertyChanged("Person ");
}
}
}
string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value)//i set a breakpoint here.when TextValue changed this breakepoint actived
{
_name = value;
RaisePropertyChanged("Name");
}
}
}
, когда я нажимаю кнопку ChangeButton в моем пользовательском элементе управления, выбранный пользователь в usercontrol изменился, и мое текстовое поле в моем представлении отображает имя типа «AA». Но моя точка останова в режиме просмотра не активна. Как можноя узнаю, что когда изменилась моя персона в режиме просмотра?