2008-09-12 33 views
5

Tôi muốn có thể lập trình liên kết một số dữ liệu với thuộc tính phụ thuộc trên BitmapEffect. Với một FrameworkElement như TextBlock có một phương pháp SetBinding nơi bạn lập trình có thể làm những ràng buộc như:WPF - Ràng buộc lập trình trên bitmapEffect

myTextBlock.SetBinding(TextBlock.TextProperty, new Binding("SomeProperty")); 

Và tôi biết bạn có thể làm điều đó trong XAML thẳng (như bên dưới)

<TextBlock Width="Auto" Text="Some Content" x:Name="MyTextBlock" TextWrapping="Wrap" > 
    <TextBlock.BitmapEffect> 
     <BitmapEffectGroup> 
      <OuterGlowBitmapEffect x:Name="MyGlow" GlowColor="White" GlowSize="{Binding Path=MyValue}" /> 
     </BitmapEffectGroup> 
    </TextBlock.BitmapEffect> 
</TextBlock> 

Nhưng tôi không thể tìm ra cách để thực hiện điều này với C# vì BitmapEffect không có phương thức SetBinding.

Tôi đã thử:

myTextBlock.SetBinding(OuterGlowBitmapEffect.GlowSize, new Binding("SomeProperty") { Source = someObject }); 

Nhưng nó không hoạt động.

Trả lời

11

Bạn có thể sử dụng BindingOperation.SetBinding:

Binding newBinding = new Binding(); 
newBinding.ElementName = "SomeObject"; 
newBinding.Path = new PropertyPath(SomeObjectType.SomeProperty); 
BindingOperations.SetBinding(MyGlow, OuterGlowBitmapEffect.GlowSizeProperty, newBinding); 

Tôi nghĩ rằng nên làm những gì bạn muốn.

Các vấn đề liên quan