2012-03-07 6 views
0

シルバーライトのDesignData機能を使用して、レイアウトをデザインする際にビジュアルxamlエディターにデータを表示します。しかし、バインディング時にレイアウトで使用するコンバーターでは、タイプがXであると予想されますが、デザインフェーズでデザインクラス_.di0.Xが生成されました。コンバーターとのコンビネーションでのデザインデータ

この状況を処理する最善の方法は何ですか?この時点で、コンバータがタイプXを受け取らず、したがってアプリケーションがクラッシュしたときに例外がスローされます。

public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     var myObj = value as X; 

     if (myObj != null) 
     { 
      // bla bla 
     } 

     throw new ArgumentException("value was of type " + value.GetType() + " must be of type X", "value"); 
    } 

答えて

0

私はあなたが問題を引き起こしていると推測していますか?つまり、Visual Studioでページをレンダリングしないようにします。あなたが行うことができますが、いくつかの異なるロジック採用し、あなたはデザインモードであるかどうかを検出です:あなたは何

public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
{ 
    if (DesignerProperties.IsInDesignTool) 
    { 
     // do something different! 
     return ""; 
    }   

    var myObj = value as X; 

    if (myObj != null) 
    { 
     // bla bla 
    } 

    throw new ArgumentException("value was of type " + value.GetType() + " must be of type X", "value"); 
} 

を、あなた次第です!おそらく、渡された生成された型に対してリフレクションを使用するでしょうか?

+0

リピートを使用して終了しました。本当に良い解決策があることを望んでいました。 –

関連する問題