実行時に列が定義されたwpfデータグリッドでイメージを正しく表示する方法については、XAMLで列を定義できません。実行時に定義されたwpfデータグリッドにビットマップイメージを表示
Myグリッドの基になるコレクションには、特定のイメージに関連する整数フィールドが含まれています。
私は実行時に自分のデータグリッドにDataGridTextColumn列を作成し、バインドしてコンバーターを設定します。
Binding binding = new Binding("MyIntegerField");
binding.Converter = new Converters.IconIndexToImageConverter();
と私のコンバータはこのように見えます。
public class IconIndexToImageConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
System.Drawing.Bitmap bitmap = null;
if (value != null)
{
int imageIndex = (int)value;
switch (imageIndex)
{
case 1:
return Properties.Resources.clip;
グリッドでは画像は表示されませんが、タイプ名System.Drawing.Bitmapが表示されます。その他のバインドされたフィールドはすべて正しく表示されています。
コンバーターがこの列に対してヒットしているのがわかります。バインディングに何か不足していますか?
おかげで....
なぜDataGrid ** Text ** Columnが正しい選択だと思われますか?また、なぜSystem.Drawing.Bitmapですか? –
そのおかげで...私が浮上しているイメージは、リソースファイルにSystem.Drawing.Bitmapとして保存されています。私はDataGridTemplateColumnを使用すべきですか? –
回答を参照してください。ところで、XAMLでそれを定義できないのはなぜですか?彼らは十分な経験がないので、しばしば人々はできないと思う。この場合、少なくともXAMLの列のテンプレートを[リソース]として定義することができます(http://msdn.microsoft.com/en-us/library/ms750613.aspx)。 –