2017-01-05 3 views
1

Как добавить привязку в код позади?Связывание кода в WPF

<Canvas.Effect > 
     <fx:GreenscreenEffect Tolerance="{Binding Value, ElementName=sliderGreenscreenTolerance}" 
          ColorR="{Binding Value, ElementName=sliderGreenscreenR}" 
          ColorG="{Binding Value, ElementName=sliderGreenscreenG}" 
          ColorB="{Binding Value, ElementName=sliderGreenscreenB}" /> 
</Canvas.Effect> 

Я пытался без успеха:

GreenscreenEffect effect = new GreenscreenEffect() ; 
Binding binding = new Binding(); 
binding.Path = new PropertyPath("Tolerance"); 
binding.Source = sliderGreenscreenTolerance.Value; 
BindingOperations.SetBinding(effect, TextBlock.TextProperty, binding); 
// etc. for each property 

ответ

1
GreenscreenEffect effect = new GreenscreenEffect() ; 
Binding binding = new Binding(); 
binding.Path = new PropertyPath("Value"); 
binding.Source = sliderGreenscreenTolerance; 
// effect.SetBinding(GreenscreenEffect.ToleranceProperty, binding); 
// Commented above out since GreenscreenEffect is not a FrameworkElement, thus: 
BindingOperations.SetBinding(effect, GreenscreenEffect.ToleranceProperty, binding); 
// ... ColorRProperty etc... 
0

Я нашел решение:

GreenscreenEffect effect = new GreenscreenEffect() ; 
       Binding binding = new Binding(); 
       binding.Path = new PropertyPath("Value"); 
       binding.Source = sliderGreenscreenTolerance; 
       BindingOperations.SetBinding(effect, GreenscreenEffect.ToleranceProperty, binding); 
+0

вы его нашли, как я печатал :) просто давая понять, что вы можете использовать Метод 'SetBinding' на элементе управления вместо того, который находится в' BindingOperations' –

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