2012-01-25 11 views
0

xaml에서 속성 값을 변경할 수 있습니까?xaml에서 값을 변경할 수 있습니까?

우리는 속성을 가지고 UserControl을 이미

public class MyUserControl : UserControl 
{ 
    ... 
    public SomeClass MainWindow 
    { 
     get 
     { 
       return _someClass ?? (_someClass = new SomeClass();) 
     } 
    } 
} 

지금은 XAML에서 초기화없이 SomeClass의 속성을 변경할 수 있으며, 애니메이션없이 초기화됩니다 한 상상이?

왜 xaml에서 구문을 사용하여 <UserControl.MainWindow.Property>을 쓸 수 없습니까?

답변

1

속성에 setter를 추가하고 XAML이 필요에 따라 자체 SomeClass를 만들도록 허용합니다. 이제는 일반적으로 완료됩니다.

XAML은 선언적 언어입니다. XAML은 튜링 완료를 시도하지 않거나 그런 식으로 시도하지 않으며, 단지 개체의을 설명합니다.

물론 extreme solution이 있습니다. 그러나 제발,하지 마세요. 당신을 위해서, 그리고 다른 사람의 :)를 들어

편집 :

는 또 다른 해결책은 UserControl을에 새로운 속성을 작성하고 SomeClass (set{ this._someClass.someProperty = value; })의 속성이 속성을 동기화 할 수 있습니다. UserControl의 XAML 선언에서이 속성을 설정하면 _someClass 멤버에 변경 내용이 전파됩니다.

래핑 된 속성에 바인딩하려는 경우 물론 래퍼 속성이 종속성 속성이어야합니다.

+0

소품 값을 변경할 방법이 없다고 확신합니까? xaml에 코드를 작성하는 것은 좋은 해결책이 아닙니다. UserControl BE에서 동일한 작업을 수행 할 수 있습니다. xaml의 다른 방법이 있습니다.이 작업을 수행하는 애니메이션이 있지만 다른 솔루션을 찾고 있습니다. –

+0

@ArsenMkrt 제 편집을 참조하십시오. –

+0

게시물을 주셔서 감사합니다, 당신이 옳은 것 같아요, 정말 다른 방법은 없지만 가치있는 미래가 될 수 있습니다. 왜냐하면 제가 재산에 가치를 부여 할 수 있기 때문에, 능력있는 재산의 가치를 부여하는 것이 합리적이기 때문입니다. –

0

하나, 값을 변경하려면 세트가 필요합니다. 둘, 그냥 바인딩 XWL의 TwoWay.

+0

SomeClass @BalamBalam에 대한 참조를 변경하고 싶지 않습니다. 설정자가있는 SomeClass의 속성을 변경하고 싶습니다. –

+0

바인딩 경로를 사용하여 속성 이름을 참조하려고 했습니까? – Paparazzi

+0

티 바인딩을 해당 속성에 바인딩하고 싶지 않습니다. 예를 들어 xaml에서 정적 값을 지정하고 싶습니다. –

관련 문제