绑定“绑定列表”DataTemplate与转换器不更新
问题描述:
我有视图模型BindingList<Wave>
。绑定“绑定列表”DataTemplate与转换器不更新
这里是模型(只显示一个属性)。
public class Wave : INotifyPropertyChanged
{
private double _period;
public double Period
{
get { return _period; }
set
{
if (value.Equals(_period)) return;
_period = value;
OnPropertyChanged(nameof(Period));
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
下面我试着去视图模型绑定到画布上,并用折线其作品,但只有一次吸引他们。
问题是,当我改变属性视图不更新。 (转换器在第一次后不会发射)。
PlotterConverter
只是返回PointCollection
。用一些公式但在这里并不重要。
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return new PointCollection(GetPoints(value as Wave));
}
答
您未使用Binding Mode = TwoWay
。
<Polyline Points="{Binding ., Mode=TwoWay, Converter={StaticResource PlotterConverter}}"/>
谢谢,但它仍然没有更新。该转换器仅在第一次启动。要么我使用单向或双向绑定模式。 –
@ M.kazemAkhgary如果您移除了转换器,您是否可以看到这些值的变化? – AnjumSKhan
转换器将'Wave'转换为'PointCollection'。这是不可能的,因为Points属性需要PointCollection。 '波浪'只是持有公式来产生点。该公式是动态的。让我尝试将WaveCollection放入Wave模型中。 –