0

データグリッドのセル テンプレートを実装しようとしています。問題は、datagridview 内のオブジェクトにバインドしようとすると、期待する値が得られないことです。

 

スタイリングなしのデータグリッドは次のようになります。

データグリッドプレーン

 

非常に単純ですが、トリガー付きのセル テンプレートを使用してスタイルを設定しようとすると、次のようになります (上記の DAL.Task を持つ各セルにはオレンジ色の円が含まれている必要があります)。

データグリッド スタイル

 

グリッドのスタイルを設定するために使用している xaml は次のとおりです。 

 

<Da​​taTemplate x:Key="MiddleDataGridCellTemplate">
 <グリッド>
  <画像名="中央画像"
   Horizo​​ntalAlignment="中央"
   VerticalAlignment="中央"/>     
 </グリッド>
 <Da​​taTemplate.Triggers>
  <Da​​taTrigger Binding="{Binding Row.ItemArray/TaskStatusName}"
   値="進行中">
   <Setter TargetName="CenterImage"
    プロパティ="ソース"
    Value="/besoControlLibrary;component/Resources/Spreadsheet_CheckedOut.png" />
  </データトリガー>
 </DataTemplate.Triggers>
</データ テンプレート>

 

「{Binding Row.ItemArray/TaskStatusName}」が問題を引き起こしていると推測していますが、datagridview 内の DAL.Task の TaskStatusName プロパティを引き出す正しい方法は何ですか?

空白のセルの値が DBNull であることがわかりました。

 

また、これらの値は、DataGrid のコンテキストである DataTable から取得されます。



4

2 に答える 2

1

DataContext は既に表示しているオブジェクトである必要があるため、必要なプロパティにバインドできるはずです。

{Binding TaskStatusName}

アプリの実行時に出力ウィンドウを見ると、より多くの情報を取得できます。また、おそらく模倣したい DataGridTemplateColumn の例を次に示します。

http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtemplatecolumn%28v=vs.95%29.aspx

于 2011-05-09T19:52:37.437 に答える
0

問題を解決しました。解決策は次のとおりです。

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/7fe562f4-739c-45df-bea3-557abd80c63d

于 2011-05-24T18:01:30.697 に答える