我有一个列表视图与一个ItemsSource的字符串列表,并且DataTemplate是一个条目单元格文本绑定到字符串。如果我单击输入单元格并开始输入,我可以看到在输入时进行的更改,但只要单击ListView外部的输入元素,我的更改就会丢失。Xamarin.Forms EntryCell第一次丢失值第一次单元失去焦点
<StackLayout Orientation="Horizontal">
<Label>Number of Players</Label>
<Entry Text="3" />
</StackLayout>
<ListView Header="Players" ItemsSource="{Binding Players}">
<ListView.ItemTemplate>
<DataTemplate>
<EntryCell Text="{Binding .}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
在视图模型我在这增加的初始元件的构造以下代码:
Players = new List<string>();
Players.Add("test1");
Players.Add("test2");
我还定义在视图模型
public List<string> Players { get; }
唯一用于运动员属性发生的时间是我第一次点击播放器标签旁边的输入框。如果我点击空白空间,我可以看到所选列表视图项目的蓝色边框消失,但值仍然是我将其更改为的值,但只要单击该条目,列表视图中条目单元格的值就会恢复为他们的原始价值。
我觉得我在WPF中遇到过类似的事情,我只是通过将UpdateSourceTrigger = PropertyChanged添加到我的绑定中来做出响应。据我所知,这不是Xamarin.Forms中的事情(至少现在还没有)。
任何想法如何保持输入到列表视图中的第一个值?
我正在处理的文件位于Xamarin.Forms Portable类库中,我正在使用通用Windows(UWP)构建对其进行测试。
你试过双向绑定了吗? –
是的,它没有工作。 –