2011-09-14 8 views
0

SL5 RCマークアップ拡張機能でバインディングを使用できますか?ここでSL5 RCマークアップ拡張機能でバインディングを使用できますか?

は私のXAMLです:

... 
    <TextBlock> 
       <TextBlock.Text> 
        <local:LengtherMarkupExtension Test="{Binding ElementName='MyTextBox', Path='Text'}" /> 
       </TextBlock.Text> 
      </TextBlock> 
... 

と私:私のMEの

public class LengtherMarkupExtension: FrameworkElement, 
     IMarkupExtension<string> 
    { 
     public LengtherMarkupExtension() 
     { 
      //this.DataContext = this; 
     } 


     public static readonly DependencyProperty TestProperty = 
      DependencyProperty.Register("Test", 
       typeof(string), 
       typeof(LengtherMarkupExtension), 
       new PropertyMetadata("DefaultValue", 
        (o, e) => 
        { 
         System.Diagnostics.Debugger.Break(); 
        })); 


     public string Test 
     { 
      get { return (string)this.GetValue(LengtherMarkupExtension.TestProperty); } 
      set { this.SetValue(LengtherMarkupExtension.TestProperty, value); } 
     } 


     public string ProvideValue(IServiceProvider serviceProvider) 
     { 
      return this.Test.Length.ToString(); 
     } 
    } 

テストプロパティはどんなの結合を介して設定されていないませんが、私が何か間違ったことをやっていますか?

+1

xaml解析中にマークアップ拡張が実行され、実行時にバインディングが設定されるため、これらの2つは決して満たされません:( – Denis

+0

ありがとう、Denis、 –

答えて

0

マークアップ拡張は、パス処理中にXAMLパーサーによって呼び出され、その時点でバインディングを解決することはできません。あなたの例に基づいて、代わりにバインディングを返すことができるようです。

関連する問題