【发布时间】:2017-10-26 13:52:49
【问题描述】:
我有一个 MVVM 应用程序,其 ListView 由 EditableTextblocks 在 DataTemplate (like this) 中组成。
这是我的模型:
public class MyModel
{
private string _data;
public string Data
{
get { return _data; }
set { _data = value; }
}
}
我的视图模型暴露了ObservableCollection 的MyModel:
public class MyViewModel
{
[...]
public ObservableCollection<Mymodel> models = new ObservableCollection<MyModel>();
}
并且在绑定到ListView的视图中:
<ListView ItemsSource={Binding models}>
<!-- code removed for more visibility -->
<DataTemplate>
<controls:EditableTextblock Text="{Binding Data, Mode=TwoWay}" />
</DataTemplate>
<!-- ... -->
</ListView>
您是否有任何线索表明,当我在列表中的某个项目中更新数据成员的值时,会检查集合中是否已存在值?
例如,如果我将一个字段更新为“值 1”,它会检查模型集合中是否有成员 Data 已经具有该值。
如果它找到一个,它会在成员数据的末尾添加一个“0”。
【问题讨论】:
-
顺便说一下,您在模型中所做的更改不会在视图中更新。您的
MyModel类没有实现INotifyPropertyChanged,但您绑定到该类的属性。 -
@dymanoid 这可能只是 OP 输入原始问题时的疏忽。