1

我目前正在使用 Telerik FW 进行 WPF 项目。

在运行时,我收到以下警告:

System.Windows.Freezable Warning: 1 : CanFreeze is returning false because a DependencyProperty on the Freezable has a value that is an expression; Freezable='System.Windows.Media.TranslateTransform'; Freezable.HashCode='36319496'; Freezable.Type='System.Windows.Media.TranslateTransform'; DP='X'; DpOwnerType='System.Windows.Media.TranslateTransform'

这是我的 xaml 代码

<Style x:Key="PieSliceStyle" TargetType="Path">
            <Setter Property="Fill" Value="{Binding DataItem.Color}" />
        </Style>

<telerik:PieSeries ItemsSource="{Binding Source}" DefaultSliceStyle="{StaticResource PieSliceStyle}">
                    <telerik:PieSeries.ValueBinding>
                        <telerik:PropertyNameDataPointBinding PropertyName="Value" />
                    </telerik:PieSeries.ValueBinding>
                    <telerik:PieSeries.LabelDefinitions>
                        <telerik:ChartSeriesLabelDefinition Margin="-10">
                            <telerik:ChartSeriesLabelDefinition.Binding>
                                <telerik:PropertyNameDataPointBinding PropertyName="Label" />
                            </telerik:ChartSeriesLabelDefinition.Binding>
                        </telerik:ChartSeriesLabelDefinition>
                    </telerik:PieSeries.LabelDefinitions>
                </telerik:PieSeries>

这是我的 ViewModel 的一部分

 private readonly SolidColorBrush PieColorEnableSlice = new SolidColorBrush(Colors.LightGray);
        private readonly SolidColorBrush PieColorDisabledSlice = new SolidColorBrush(Colors.Red);

 public AsyncObservableCollection<MSShareClassModel> List
        {
            get
            {
                return this._list;
            }

            set
            {
                if (this.SetProperty(ref this._list, value, "List"))
                {
                    this.Source = new AsyncObservableCollection<PieChartModel>
                                                          {
                                                              new PieChartModel
                                                                  {
                                                                      Label = "Active",
                                                                      Value = this._list.Count(x => x.Status == "1"),
                                                                      Color = this.PieColorEnableSlice
                                                                  },
                                                              new PieChartModel
                                                                  {
                                                                      Label = "Disable",
                                                                      Value = this._list.Count(x => x.Status == "0"),
                                                                      Color = this.PieColorDisabledSlice
                                                                  },
                                                          };
                }
            }
        }

我认为一种解决方案是直接从 xaml 源创建颜色。但我想保持这个绑定能够以编程方式更改颜色。

对这个警告有任何想法吗?

4

1 回答 1

0

好的经过更多调查,这不是来自 pieSeries.. 这是由 RadGridView 触发的....

我从 xaml 中一一删除了所有 xaml 组件。最后一个活着的是网格,我一直有这个警告。我删除了网格并启用了所有其他组件,并且警告消失了,直到我取消注释 xaml 中的网格。没什么花哨的,只是简单的 RadGridView 声明。没有 DataSource 或 Column 定义,只是一个简单的空网格。

自 2010 年以来,该问题似乎已从许多组件中向 Telerik 开发团队声明。(树视图,网格等...)

经过一番阅读,Telerik 不会解决此类问题......(我们可以在http://feedback.telerik.com/上投票支持它:))

我不会将此作为答案,我仍然有警告=/

于 2016-05-31T14:01:26.380 回答