私のカスタムイベントに問題があり、私のUWPアプリケーションのテキストボックスを更新していません。私がTextbox1.Textをdebug.Writelineに置き換えれば、それは動作します。イベントを使ってテキストボックスを更新できない理由はありますか?私がProgressオブジェクトを使用する場合、それは機能します。私はちょうどそれがなぜ自分のカスタムイベントでうまくいかないのか理解しようとしています。ありがとうございましたC#カスタムイベントでクラスが更新されないTextbox
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
private void button_click(object sender, RoutedEventArgs e)
{
recData myRecDataobject = new recData();
myRecDataobject.dataRecvEvent +=() =>
{
textBox2.Text = "Event Occured"; // This throws an error
Debug.WriteLine("test2");
};
Progress<int> progress = new Progress<int>();
myRecDataobject.getDataMethodAsync(progress);
progress.ProgressChanged += (o, result) =>
{
textBox1.Text = result.ToString();
};
}
}
public class recData
{
public delegate void myEvenetHandlerDelegate();
public event myEvenetHandlerDelegate dataRecvEvent;
private int _myValue;
public int myValue
{
get
{
return _myValue;
}
set
{
_myValue = value;
}
}
public async void getDataMethodAsync(Progress<int> progress)
{
await getDataMethod(progress);
}
private Task getDataMethod(IProgress<int> progress)
{
return Task.Factory.StartNew(() =>
{
for (int i = 0; i < 1000; i++)
{
Task.Delay(2000).Wait();
if (dataRecvEvent != null)
{
dataRecvEvent();
progress.Report(i);
}
}
});
}
}
これは、スローされるエラーは何ですか? – m1o2