2011-09-14 5 views
0

SL5 RC 마크 업 확장과 함께 바인딩을 사용할 수 있습니까?SL5 RC 마크 업 확장과 함께 바인딩을 사용할 수 있습니까?

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

그리고 ME : 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(); 
     } 
    } 

테스트 속성

여기 내 XAML입니까?

+1

xaml 구문 분석 중에 마크 업 확장이 실행되고 바인딩이 런타임에 설정되므로이 둘은 결코 만날 수 없습니다. ( – Denis

+0

감사합니다, Denis, 답변으로 게시 할 수 있습니까? –

답변

0

마크 업 확장은 패싱 프로세스 중에 XAML 파서에 의해 호출되고 그 시간에 바인딩을 확인할 수 없습니다. 귀하의 예제를 기반으로 대신 바인딩을 반환 할 수 있습니다 것처럼 보입니다.