从带有 x:name 的条目中获取文本

问题描述 投票:0回答:1

我正在开发一个个人项目,除了一些小错误外,该项目正在运行。 我有一个名为“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 对象,这给了我错误:

  1. 不可调用的成员“name”不能像方法一样使用。

  2. 非静态字段、方法或属性“成员”需要对象引用

  3. 返回值的方法必须在所有代码路径中都有 return 语句

c# windows mvvm binding maui
1个回答
0
投票

我最终创建了一个常规单击事件,该事件从 Entry.text 收集文本字段,然后像调用方法一样调用存储库来返回成员。 这不是我想要的方式,但似乎可行。 我想最终用户不会觉得有什么区别。

© www.soinside.com 2019 - 2024. All rights reserved.