【问题标题】:Binding in code behind in WPF在 WPF 中的代码中绑定
【发布时间】:2017-05-20 15:48:13
【问题描述】:

如何在后面的代码中添加绑定?

 <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

【问题讨论】:

标签: c# wpf xaml


【解决方案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...

【讨论】:

    【解决方案2】:

    我找到了解决办法:

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

    【讨论】:

    • 你在我打字的时候发现了它 :) 只是让你知道你可以在控件上使用 SetBinding 方法而不是 BindingOperations 中的方法
    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多