2012-09-19 10 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

クリエイターによる更新の型変換器が登場しています! http:// timheuer。com/blog/archive/2017/02/15/implement-type-converter-uwp-winrt-windows-10-xaml.aspx – Briefkasten

0

IValueConverterインターフェイスを使用してください。

+0

このインターフェイスを実装する組み込みコンバーターはありますか? –

+0

WinRTはWPFよりも多くのSilverlightです。だから、すぐに使用できるコンバーターはないとは思わない。 – Dennis