提问人:James Crutchley 提问时间:1/25/2023 更新时间:1/25/2023 访问量:166
在 maui 中使用 [RelayCommand] 发送后,ViewModel 中的 setter 在 Maui 中接收截断的字符串
After sending using [RelayCommand] in maui the setter in ViewModel receives truncated string in Maui
问:
在 maui 中使用 [RelayCommand] 发送后,ViewModel 中的 setter 在 Maui 中接收截断的字符串。 原始字符串示例:“https://twit.memberfulcontent.com/rss/9039?auth=m9FZurRandomAuthonumbers6yB”
URL 的值在这里很好:
[RelayCommand]
async Task Tap(string Url)
{
System.Diagnostics.Debug.WriteLine("Tap Sending: " + Url);
await Shell.Current.GoToAsync($"{nameof(ShowPage)}?Url={Url}");
}
当接收到这里时,URL被截断:
namespace NerdNewsNavigator2.ViewModel;
[QueryProperty("Url", "Url")]
public partial class ShowViewModel : ObservableObject
{
#region Properties
readonly TwitService _twitService;
public ObservableCollection<Show> Shows { get; set; } = new();
public string Url
{
set
{ // value is truncated string from Tap above.
System.Diagnostics.Debug.WriteLine("ShowViewModel Recieving url: " + value);
_ = GetShows(value);
OnPropertyChanged(nameof(Shows));
}
}
// Code shortened for brevity
传递的字符串示例: “https://twit.memberfulcontent.com/rss/9039” 它在 ?认证
关于我可能做错了什么有什么建议吗?或者建议更好的方法来做到这一点?它适用于没有 ?标记在他们身上。100% 工作,除了这种特定类型的字符串。
我以为字符串不会被截断。
答:
1赞
H.A.H.
1/25/2023
#1
在 MAUI 中的页面之间传递数据的正确方法:
导航时:
Dictionary<string, object> query = new()
{
{ nameof(MyModel), myModel }
};
await Shell.Current.GoToAsync($"{nameof(MyPage)}", query);
导航时:
public void ApplyQueryAttributes(IDictionary < string , object > query)
{
myModel = query[nameof(MyModel)] as MyModel;
}
(这不仅解决了消毒问题)
评论