0

私の Windows 8 アプリには、次のような RadCartesianChart があります。

<telerikChart:LineSeries ItemsSource="{Binding GraphData, Mode=TwoWay}" ShowLabels="True">
    <telerikChart:LineSeries.CategoryBinding>
        <telerikChart:PropertyNameDataPointBinding PropertyName="Category" />
    </telerikChart:LineSeries.CategoryBinding>
    <telerikChart:LineSeries.ValueBinding>
        <telerikChart:PropertyNameDataPointBinding PropertyName="Value" />
    </telerikChart:LineSeries.ValueBinding>
</telerikChart:LineSeries>

このコレクションにバインドされています:

public ObservableCollection<Data> GraphData
{
    get { return _graphData; }
    set
    {
        if (_graphData != value)
        {
            _graphData = value;
            RaisePropertyChanged(() => GraphData);
        }
    }
}

次のオブジェクトが含まれています。

public class Data : ViewModelBase
{
    private string _category;
    private int _value;

    public string Category
    {
        get { return _category; }
        set
        {
            if (_category != value)
            {
                _category = value; 
                RaisePropertyChanged(() => Category);
            }
        }
    }

    //etc
}

RadCartesianChart はいくつかのデフォルト データにバインドされていますが、実行時にこのデータを置き換えたいと考えています。しかし、どういうわけか私はこれを機能させることができません...私はすでに単純に次のようなことを試みました:

GraphData = new ObservableCollection<Data>(someData);

私はこのようなことをしてみました:

GraphData.Clear();
GraphData.Add(object1);
GraphData.Add(object2);
//etc

しかし、グラフは更新されません。これはおそらく ObservableCollection の問題であることは認識していますが、機能させることはできません。

私はMVVM Light ViewModelBasebtwを使用しています。誰にも解決策がありますか?

4

1 に答える 1

4

監視可能なコレクションが変更されると、RadChart がリッスンするコレクション変更イベントが発生し、UI が更新されます。2013 年第 1 四半期の SDK を参照する例を用意しました。ここで見つけることができます - https://www.dropbox.com/s/1zv32gqsx1vryen/RadChartObsCollection.zip

これがあなたの側でも適切に機能するかどうか、またそうでない場合は、使用しているコントロールのバージョンを明確にしていただけますか?

于 2013-04-16T13:06:35.537 に答える