2012-09-19 2 views
5

TypeConverter을 사용할 수 없습니다. 이것을 대체하기 위해 권장되는 것은 무엇입니까?System.ComponentModel.TypeConverter에 대한 WinRT 대체

나는 자신의 TypeConverter 클래스를 만들어 대신 할 것이지만, WinRT에서 새롭고 더 좋은 방법이 있다면, 그 길로 갈 것입니다. 내가 다시 만들어야 할 다른 많은 수업도있다. 모든 기본 유형 변환기와 같습니다.

+0

실제로 'TypeConverter'는 실제로 모든 업스트림 배관을 고려할 때 꽤 복잡한 API입니다. winrt의 경우, 그렇습니다. 매우 간단합니다. 그래서 대답 해주십시오. 지원해야 할 시나리오 세트를 알아야합니다. –

+0

문자열을 기본 제공 유형으로 변환하고 다시 문자열로 변환합니다. 이것은 'StringConverter'와 같은 모든 내장 컨버터가 작동하는 곳입니다. 나는 또한'TypeDescriptor.GetConverter'과 이것들을 사용하는 다른 클래스들을 사용하고 있습니다. "MissingFromRt45"클래스 세트를 작성하여 필요한 기능 만 구현할 수 있지만 클래스 목록이 상당히 클 것 같습니다. –

+0

당신이 사용하고있는 모든'TypeConverter' 물건을 꺼내서 그것을 사용자 정의 타입 변환 설정으로 바꾸는 것이 더 유익하다고 생각합니까? 그렇게하면 실행중인 .NET 버전에 관계없이 작동합니다. –

답변

2

TypeConverter 클래스가 WinRT에없고 팀에서 향후 릴리스에 포함 할 계획을 발표하지 않았습니다. 다양한 옵션이 있습니다.

옵션 1 : 변환 데니스로 IValueConverter 인터페이스 언급 데이터 바인딩을 사용의 일부로서 수행 될 경우.

옵션 2 : 당신은 당신이 당신의 자신의 명시 적 또는 암시 적 연산자를 추가 할 수있는 유형의 창조자가 캐스팅 지원하는 경우 :

http://msdn.microsoft.com/en-US/library/xhbhezf4(v=vs.80).aspx

http://msdn.microsoft.com/en-US/library/z5z9kes2(v=vs.80).aspx

옵션 3 : 당신을 자신의 TypeConverter 클래스를 만들 수 있습니다.

옵션 4 : 당신은 당신의 자신의 확장 방법을 추가 할 수 있습니다 (바인딩의 일부가 만약 내가 그것을 할 거라고 방법) :이 같은 코드를 작성할 수 것

static public class ConverterExtensions 
{ 
    static public string ToFixedString(this double value) 
    { 
     return value.ToString("D"); 
    } 
} 

:

double d = 123.45; 
string str = d.ToFixedString(); // str now equals "123" 
+1

XAML 선언에서 TypeConverter 사용 만 바꾸는 것이 목표 인 경우이 옵션 중 어느 것이 더 좋습니까? 나는 실패한 # 1을 시도하고, # 4는 빠져있다. –

+0

나는 정말로 당신이 옵션 3을 구현하는 것에 관심이있다. 나는 uwp에서 어떤 typeconverter 예제를 찾을 수 없다. 또한 사용자 정의가 있습니다 https://wpdev.uservoice.com/forums/110705-universal-windows-platform/suggestions/9576897-implement-system-componentmodel-typeconverter-in-w – Briefkasten

+0

작성자 업데이트 typeconverters가오고 있습니다! http : // timheuer.com/blog/archive/2017/02/15/구현 유형 변환기 -uwp-winrt-windows-10-xaml.aspx – Briefkasten

0

IValueConverter 인터페이스를 사용하십시오.

+0

이 인터페이스를 구현하는 변환기가 내장되어 있습니까? –

+0

WinRT는 WPF 이상의 Silverlight입니다. 그래서, 나는 out-of-the-box 컨버터가 있다는 것을 생각하지 않는다. – Dennis