문제

나는 Silverlight Templeated Control (예 : 제어에서 파생되어 Generic.xaml에서 컨트롤 플레이트로 구현되어 있음)을 작업하고 있으며 바인딩 중 하나에서 ValueConverter의 필요성을 발견했습니다. 일반적으로 협력하는 컨트롤 리소스에서 ValueConverter의 인스턴스를 만들지 만 ControlTemplate로이를 수행하는 방법을 알 수는 없습니다. 가능하면이 구현을 모두 XAML로 유지하고 싶지만 onapplyTemplate을 무시하고 변환기로 바인딩을 수동으로 생성 할 수 있다고 생각합니다.

도움이 되었습니까?

해결책

이것은 Silverlight 3에서 작동합니다. 제어 템플릿 내부에 리소스 섹션을 추가하고 ValueConverter를 템플릿의 리소스에 추가하면됩니다.

<ControlTemplate TargetType="controls:MyControl">
    <Grid Margin="8,40,8,20" x:Name="peopleListContainer">        
        <Grid.Resources>
            <controls:MyValueConverter x:Key="converter" />
        </Grid.Resources>
        <!-- ....

그러나 ValueConverters는 종종 제어 템플릿에서 오용됩니다. 대신 TypeConverter를 사용하고 싶을 수도 있습니다. Bryant Likes는 좋은 기사를 썼습니다 이 시나리오에서 ValueConverter와 TypeConverter의 차이점.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top