Settings というオブジェクトがあります。bool 型の BusyDoingAction というプロパティがあります。
public class Settings : ObservableObject
{
private bool busyDoingAction;
public bool BusyDoingAction
{
get { return this.busyDoingAction; }
set
{
this.busyDoingAction= value;
OnPropertyChanged(() => BusyDoingAction);
}
}
FileAdding という別のクラスがあります。
private readonly string[] files;
private bool busy;
public FileAdding(string[] files, bool busyAction)
{
this.files = files;
this.busy= busyAction;
}
今、私のViewModelには次のものがあります:
var fileAdding = new FileAdding(files, Settings.BusyDoingAction);
if (!fileAdding.Initialize())
return;
Task<bool>.Factory.StartNew(() =>
{
fileAdding.Execute(CToken);
return fileAdding.Deinitialize();
}, CToken);
}
そして FileAdding Initialize() 関数には次のものがあります。
public bool Initialize()
{
busy = true;
return true;
}
public bool Deinitialize()
{
busy = false;
return true;
}
問題は、BusyDoingAction が FileAdding で変更されておらず、そのプロパティの値が変更されたという通知を取得していないことです..
プロパティはアプリケーションの mainGrid にバインドされており、それを使用してアプリケーションがビジーかどうかを検出し、BusyDoingAction の値に応じてグリッドを有効/無効にします。
何が間違っているのかわかりませんが、そのbusyDoingAction.Intialize/Deinitialize関数でBusyDoingActionのプロパティ値を設定する必要があります..
どんな助けでも本当に感謝しています..