質問編集履歴

2

教えていただいたソースを元にテストしたらエラーが出たので報告します

2023/06/15 01:05

投稿

nodoita
nodoita

スコア7

test CHANGED
File without changes
test CHANGED
@@ -260,32 +260,27 @@
260
260
  }
261
261
  ```
262
262
  ### 追記
263
- ```
264
- //lock less bitmap
265
- MemoryStream data = new MemoryStream(File.ReadAllBytes(dst_image_path));
266
- WriteableBitmap wbmp = new WriteableBitmap(BitmapFrame.Create(data));
267
- data.Close();
263
+  追記長すぎたので削除
268
-
269
- this.Dispatcher.Invoke((Action)(() => {
264
+
270
- BitmapImage bmp = new BitmapImage();
271
- bmp.BeginInit();
272
- bmp.CacheOption = BitmapCacheOption.OnLoad;
273
- bmp.UriSource = new Uri(dst_image_path);
274
- bmp.EndInit();
275
- WriteableBitmap wbmp = new WriteableBitmap(bmp);
276
- this.MainImage.Source = wbmp;
277
- }));
278
- ```
279
- 上記のような方法を見つけましたが、
280
- Bindingがあまり良く分かっておらずどのように修正すべきか分からない状況です。
281
- メモリに読ませて描画させれば画像ロックしないことは分かったのですが
282
- それをどう「FileData.cs」や「SubWindow.xaml.cs」に記載すれば良いのか分からないのです。
283
-
284
- リストビューで反映するようにするために
285
- <Image Source="{Binding FilePath}"></Image>
286
- 上記のように設定していて自動で画像が表示されています。
287
-
288
- 画像ドロップ時に表示されないこと、画像ファイルがロックされることを除けば、思った通りの動作をしています。
289
265
  ### 補足情報(FW/ツールのバージョンなど)
290
266
  Visualstudio2022
291
267
  .NET 6.0 C#
268
+
269
+ ### 回答頂いたソースについて
270
+ TN8001様、回答ありがとうございます!
271
+ BindingとMVVMが難しくて中々理解が難しいですが、勉強頑張ります。
272
+
273
+ 動作確認をしたかったため、VisualStudioで新規作成し
274
+ ソースをコピペしてビルドしてみましたが、エラーが出て実行できません。
275
+ NugetではMVVM追加済みです。
276
+ (見づらいため本文にもエラー内容を追記しています)
277
+
278
+ 1>CSC : warning CS8032: アナライザー CommunityToolkit.Mvvm.SourceGenerators.ClassUsingAttributeInsteadOfInheritanceAnalyzer のインスタンスは C:\Users\test\.nuget\packages\communitytoolkit.mvvm\8.2.0\analyzers\dotnet\roslyn4.3\cs\CommunityToolkit.Mvvm.SourceGenerators.dll (ファイルまたはアセンブリ 'System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。) から作成できません。
279
+ ~同じようなエラーが数個~
280
+
281
+ VisualStudio2022でMVVM使うために、C#のバージョン?を上げないといけないとみて
282
+ TEST.csprojに<LangVersion>9.0</LangVersion>を追加してみましたが、ビルド出来ない症状は変わりませんでした。
283
+ 以下のようなエラーも出ています。
284
+
285
+ VisualStudio 2022 Version17.3.4を利用してます。
286
+ 度々申し訳ありませんが、何か分かりますでしょうか。

1

自分で確認したことを追記

2023/06/14 08:32

投稿

nodoita
nodoita

スコア7

test CHANGED
File without changes
test CHANGED
@@ -259,8 +259,33 @@
259
259
  }
260
260
  }
261
261
  ```
262
-
262
+ ### 追記
263
-
263
+ ```
264
+ //lock less bitmap
265
+ MemoryStream data = new MemoryStream(File.ReadAllBytes(dst_image_path));
266
+ WriteableBitmap wbmp = new WriteableBitmap(BitmapFrame.Create(data));
267
+ data.Close();
268
+
269
+ this.Dispatcher.Invoke((Action)(() => {
270
+ BitmapImage bmp = new BitmapImage();
271
+ bmp.BeginInit();
272
+ bmp.CacheOption = BitmapCacheOption.OnLoad;
273
+ bmp.UriSource = new Uri(dst_image_path);
274
+ bmp.EndInit();
275
+ WriteableBitmap wbmp = new WriteableBitmap(bmp);
276
+ this.MainImage.Source = wbmp;
277
+ }));
278
+ ```
279
+ 上記のような方法を見つけましたが、
280
+ Bindingがあまり良く分かっておらずどのように修正すべきか分からない状況です。
281
+ メモリに読ませて描画させれば画像ロックしないことは分かったのですが
282
+ それをどう「FileData.cs」や「SubWindow.xaml.cs」に記載すれば良いのか分からないのです。
283
+
284
+ リストビューで反映するようにするために
285
+ <Image Source="{Binding FilePath}"></Image>
286
+ 上記のように設定していて自動で画像が表示されています。
287
+
288
+ 画像ドロップ時に表示されないこと、画像ファイルがロックされることを除けば、思った通りの動作をしています。
264
289
  ### 補足情報(FW/ツールのバージョンなど)
265
290
  Visualstudio2022
266
291
  .NET 6.0 C#