2014-02-09 4 views
0

У меня есть следующий класс:WPF свойства зависимостей - игнорируются

public class Person:DependencyObject 
    { 
     public static readonly DependencyProperty NameProperty = DependencyProperty.Register("Name", typeof(String), typeof(Person)); 

     public string Name 
     { 
      get 
      { 
       string result = (string)GetValue(NameProperty); 
       return result; 
      } 
      set 
      { 
       SetValue(NameProperty, value); 
      } 
     } 
    } 

И следующее окно:

<Window x:Class="BindingSelf.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition></RowDefinition> 
     </Grid.RowDefinitions> 
     <TextBox Grid.Row="0" Text="{Binding Name}"></TextBox> 
    </Grid> 
</Window> 

Код позади для окна является:

public partial class MainWindow : Window 
    { 
     Person p = null; 
     public MainWindow() 
     { 
      InitializeComponent(); 

      p = new Person(); 
      p.Name = "Test1"; 
      this.DataContext = p; 
     } 

    } 

TextBox является связанный с именем, и его значение («Test1») корректно отображается при запуске приложения. Теперь вот мой вопрос, если я установил точку останова в части Get из свойства Name, она полностью игнорируется. Я проделал несколько тестов и даже если я вернусь к пустым показам «Test1», может кто-нибудь объяснить, что происходит?

Благодаря

ответ

1

Объяснение от MSDN связи является Спроецировать

Текущая реализация WPF его процессора XAML неотъемлемо свойство зависимостей известно. WPF XAML-процессор использует систему свойств методы для свойств зависимостей при загрузке двоичных XAML и атрибутов обработки, которые являются зависимыми свойствами. Это эффективно обходит обертки свойств. Когда вы реализуете пользовательскую зависимость , вы должны учитывать это поведение и должны избегать размещения любого другого кода в вашей обертке свойств, кроме методов системы свойств GetValue и SetValue.

Смежные вопросы