2009-09-21 11 views
0

DataGridを使用してSilverlightでプロパティウィンドウを設計したいとします。 2つのヘッダー列があります。値ヘッダーには、さまざまな種類のコントロールがあります。それは、コンボボックス、テキストボックス、および他のコントロールを持つ可能性があります。 これは、DataGridのビューです。SilverlightのDataGridの同じヘッダーにある複数のコントロールのタイプ

  1. 名--------------コントロールのタイプ(制御、表示する)
  2. 表示テキスト-------テキストボックス
  3. タイプ---- ----------コンボボックス
  4. でIsEnabled ---------チェックボックス

それはデータグリッドでは不可能であれば、同じことを達成するための他の方法を提案してください。

答えて

0

DataFormを見ましたか?なぜあなたはDataGridで上記のことをしたいと思うのか分かりません。

+0

であり、これは私のために良いです。クラスの変数があれば、そのクラスのプロパティを表示するためのポップアップウィンドウを開くボタンを表示するようないくつかの要件が必要です。 –

0

コントロールを返したコンバータを使用しました。 ソースオブジェクト データグリッドのデータソースへのデータバインディングを作成したコンバータは、私は、データフォームを試してみましたIEnumerable<PropertyPresenter>

public class PropertyPresenter 
    { 
     public PropertyInfo PropertyInfo { get; set; } 
     public object Source { get; set; } 
    } 

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 

     FrameworkElement Control = null; 
     var presenter = value as PropertyPresenter; 

     Binding binding = new Binding(presenter.PropertyInfo.Name); 
     binding.Mode = presenter.PropertyInfo.CanWrite ? BindingMode.TwoWay : BindingMode.OneWay; 
     binding.Source = presenter.Source; 

     if(presenter.PropertyInfo.PropertyType == typeof(bool)) 
     { 
      Control = new CheckBox(); 
      Control.HorizontalAlignment = HorizontalAlignment.Right; 
      Control.SetBinding(CheckBox.IsCheckedProperty, binding); 
     } 
     return Control; 
    } 
関連する問題