私はtelerikチャートを使用してSilverlightアプリケーションを使用しています。SilverlightおよびTelerikチャートで非同期サービスを使用してデータを正しく処理する方法
私の見解では、xamlにグラフがあります。
public class MyViewModel : INotifyPropertyChanged
{
private ObservableCollection<ChartData> myChartData;
public ObservableCollection<ChartData> MyChartData
{
get { return myChartData; }
set { myChartData= value; OnPropertyChanged("MyChartData"); }
}
public MyViewModel()
{
MyWebServiceClient service = MyWebServiceClient.CreateInstance();
service.GetChartDataCompleted +=
new EventHandler<GetChartDataCompletedEventArgs>(GetChartDataCallback);
service.GetChartDataAsync();
}
private void GetChartDataCallback(object sender, GetChartDataCompletedEventArgs e)
{
if (e.Error == null)
{
MyChartData = e.Result;
}
}
}
私はGetChartDataを正しく使用することができ、データを入力した返すことを確実に知る:私はこれを持って私のViewModelで
public partial class MyView : UserControl
{
private MyViewModel viewModel;
public MyView()
{
InitializeComponent();
CreateChartMappings(); // Creates the SeriesMappings for my chart
viewModel = new MyViewModel();
Chart1.ItemsSource = viewModel.MyChartData;
DataContext = viewModel;
Resources.Add("ViewModel", viewModel);
}
}
:ビューの背後にあるコードでは、私はこのようなものを持っていますグラフの場合、GetChartDataCallbackはe.Resultで結果を返しますが、そのデータをグラフにロードする方法はわかりません。
私がChart1.ItemsSource = viewModel.MyChartDataのようなことをすれば、サービスがデータを返すと確信した後、データはチャートに正常に読み込まれます。たとえば、ビューの中にその行のコードを呼び出すボタンを作成すると、サービスからチャートにデータがロードされます。
また、通常のメソッド呼び出しでasyc呼び出しを置き換えても問題なく動作するため、問題はasyc呼び出しを正しく処理できないことがありますか?
あなたは正しいと思います。ありがとうございました。私はある時点でXAMLでそれを持っていましたが、バインディング名の誤植がありました。私はまだサービスに関する問題に遭遇していませんでしたが、もし私がそうしたらあなたの答えを念頭に置いています。 – dtc