2017-10-11 45 views
0

我有一个列表源并将其与XAML控件绑定。 请这样想。我用“CustomControl”制作了它。C#绑定收藏+动画

  1. 列表A(字符串 “A” +动画)
  2. 列表B(字符串 “B” +动画)
  3. 列表C(字符串 “C” +动画)

enter image description here

现在,我可以在UI上看到3个项目,每个UI都有一个重复的动画。 示例:将XY尺寸更改为1.0,2.0和1.0(相同尺寸)并永久重复。

我的问题。

如果我用PropertyChanged更新列表, 重复的动画更改为奇怪。因为当我更新列表中的一个时, PropertyChanged被调用。和动画强制从头开始。它是不美的重复...:(

有什么想法

我的想法

现在,我有一个列表中的源属性?例如:。

ObservableCollection<DerMeter> _derSource = new ObservableCollection<DerMeter>(); 
public ObservableCollection<DerMeter> DerSource 
    { 
     get { return _derSource; } 
     set 
     { 
      this.Set(ref _derSource, value); // = PropertyChanged 
     } 
    } 

我先修改“_derSource”并将其插入到属性中。

private void updateSource() 
{ 
       //Do something.. 
       DerSource = _derSource; 
} 

并且它调用PepertyChanged。而C#将从更新列表中创建新的UI。这意味着, 动画将被重置并从头开始。

如果不是列表,C#将不会创建新的UI。

+1

您是指故事板动画? –

+0

如果把这个问题放在一些示例代码中会好很多。 – Romasz

回答

0

可能您可以尝试的是,在更新列表时关闭PropertyChanged事件,并在更新完成后打开。

YourModel.PropertyChanged -= YourModel_PropertyChanged; 

// Update the list. 

YourModel.PropertyChanged += YourModel_PropertyChanged; 
+0

我更新了一些代码...但我无法上传我的代码。因为它与设备连接。没有设备,它不起作用... –