我正在开发一个个人项目,除了一些小错误外,该项目正在运行。 我有一个名为“CurrentMember”的变量,它从使用 MVVM 绑定上下文绑定到数据库的集合视图中获取选定的记录。
CurrentMember 具有绑定到几个条目的条目:
mainpage.xml
<Label Text="First Name" />
<Entry x:Name="EntFName" Placeholder="First Name"
Text="{Binding CurrentMember.first_name, Mode=TwoWay}" />
<Label Text="Last Name"/>
<Entry x:Name="EntLName" Placeholder="Last Name"
Text="{Binding CurrentMember.last_name, Mode=TwoWay}" />
<Label Text="Phone Number" x:Name="lblPhone" IsVisible="False" />
<Entry Placeholder="1234567890" x:Name="EntPhone" IsVisible="False"
Text="{Binding CurrentMember.phone_num, Mode=TwoWay}" MaxLength="10" ReturnCommand="{Binding SignInCommand}"/>`
因此,每次我单击集合视图中的记录时,它都会发生变化。
我正在实现“搜索”功能,以便能够搜索记录,而无需向下滚动集合视图。 填写字段后,我可以通过视图模型获取任何文本:
SearchCommand = new Command(async async =>
{
CurrentMember = App.MemberRepo.SearchMember(CurrentMember.card_num, CurrentMember.first_name, CurrentMember.last_name, CurrentMember.phone_num);
});
问题是,如果条目为空,它会获取清空字段之前最后选择的内容。 因此,当我真的希望它为空时,“card_num”将为 100123,它会搜索card_num,而不是转到下一个字段或说“未找到用户”
我知道这是因为我使用的字段绑定到“CurrentMember”,所以我试图想办法使用 x:name 或清除“currentMember”并使用字段中的内容。
我知道最简单的方法就是使用新的条目或搜索栏,但我试图避免这种情况,因为目标用户年龄较大且不懂技术。 任何输入都会很棒
我尝试实现多重绑定但没有成功<- that's probably a me being new problem
并尝试使用普通的单击绑定来获取 x:name 条目,然后以多种方式调用 MVVM 对象,这给了我错误:
不可调用的成员“name”不能像方法一样使用。
非静态字段、方法或属性“成员”需要对象引用
返回值的方法必须在所有代码路径中都有 return 语句
我最终创建了一个常规单击事件,该事件从 Entry.text 收集文本字段,然后像调用方法一样调用存储库来返回成员。 这不是我想要的方式,但似乎可行。 我想最终用户不会觉得有什么区别。