2013-06-02 5 views
4

Это работает.WPF - Style Setter Property Binding

 <Setter Property="Width" Value="300" /> 
    <Setter Property="Height" Value="300" /> 

Но когда я меняю это, не работает.

<Setter Property="Width" Value="{Binding ImageSize, Mode=TwoWay}" /> 
    <Setter Property="Height" Value="{Binding ImageSize, Mode=TwoWay}" /> 

и объявить

private Int32 imageSize; 
    public Int32 ImageSize 
    { 
     get { return imageSize; } 
     set 
     { 
      imageSize = value; 
      NotifyPropertyChanged("ImageSize"); 
     } 
    } 

Что не так?

+1

Где вы устанавливаете 'DataContext' для элемента, к которому применяется стиль? –

+0

On UserControl, DataContext = "{Binding ElementName = CodeBehind}" – mozkarakoc

+1

А у вас есть UserControl с именем CodeBehind? Наиболее вероятной причиной является то, что он не находит свойство ImageSize в 'DataContext'. Проверьте окно «Выход», чтобы узнать, есть ли какие-либо ошибки привязки, и, возможно, разместите больше кода, так что легче устранить неполадки. –

ответ

6

Наиболее вероятной причиной является проблема со связыванием, а именно DataContext. Я бы рекомендовал посмотреть в окне «Вывод» для ошибок привязки (они не будут отображаться как стандартные исключения, но будут отображаться в окне «Вывод» для целей отладки). Ошибки привязки должны указывать вас в правильном направлении, насколько WPF распознает как DataContext.