複数の画像を使用する WPF アプリケーションがあります。ほとんどの画像は変更されないため、XAML コードで設定されます。私のBuild Action
すべてのイメージファイルは「リソース」にCopy to Output Directory
設定され、「コピーしない」に設定されています。それらは期待どおりに表示されます。設定方法の例を次に示します。
<ribbon:RibbonApplicationMenu SmallImageSource="/Voetbal;component/Images/Ball_16.png">
//or
<ribbon:RibbonButton LargeImageSource="/Voetbal;component/Images/Calendar_32.png" />
//or
<Image Source="/Voetbal;component/Images/remove.png" Width="16" Height="16" />
しかし、C# を介して設定する必要があるイメージもあります。UserControl には、次のマークアップを持つ特定の列を含む ListView があります。
<GridViewColumn Header="" Width="32">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding Icon}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
ListView の ItemsSource は、ListView に入力される項目のインスタンスを含む汎用リストです。これらのアイテムには、2 つの文字列フィールドと ImageSource (「Icon」という名前) があります。Icon-property を次のように設定します。
var icon = new BitmapImage(new Uri("/Images/Gold_16.png", UriKind.RelativeOrAbsolute));
myViewModel.Items[0].Icon = icon;
しかし問題は、ListView に画像が表示されないことです。次のコードも試しました。SO や他のフォーラムで同様の質問への回答からこれらの部分を使用しました。私が怠けていたとか、何も試していないというわけではありませんが、これを修正する方法がわかりません...
var icon = new BitmapImage(new Uri("/Voetbal;component/Images/Gold_16.png", UriKind.RelativeOrAbsolute));
//or
var icon = new BitmapImage();
icon.BeginInit();
icon.UriSource = new Uri("pack://application:,,,/Voetbal;component/Images/Gold_16.png");
icon.EndInit();
//or
var icon = new BitmapImage();
icon.BeginInit();
icon.UriSource = new Uri("pack://application:,,,/Images/Gold_16.png");
icon.EndInit();
PS: 2 つの文字列プロパティが ListView の他の列に正しく表示されるため、ViewModel のバインドが機能することはわかっています。
ImageSource を設定して ListView に正しくバインドする方法を知っている人はいますか?
前もって感謝します!