我正在嘗試更改我的 Xamarin Forms 應(yīng)用程序(使用 Mapsui 和 Prism)中的 MapView,因?yàn)槲倚枰獑为?dú)的視圖來存儲(chǔ) Pins。第一個(gè) MapView(我們稱之為default)用于顯示列表中的所有引腳。第二個(gè) MapView ( history) 用于顯示新的圖釘,這些圖釘在離開頁面時(shí)被移除。我必須Dictionary存儲(chǔ)我的 MapViews 才能輕松訪問我想要的任何視圖。每個(gè)創(chuàng)建的 MapView 都有相同的 Map 實(shí)例。我想從which should hide pins that added in view更改default為。historydefault我用這個(gè)改變觀點(diǎn):public void ChangeView(string name) { var prev = MapView; loggerService.Info($"Pins: {prev.Pins.Count}"); MapView = GetView(name); // Current MapView in XAML, returns instance of MapView loggerService.Info($"New view pins: {MapView.Pins.Count}"); Task.Factory.StartNew(() => { Task.Delay(2000).Wait(); loggerService.Info($"View pins: {MapView.Pins.Count}"); }); MapView.Refresh(); }帶有日志的額外代碼用于調(diào)試目的 - 它顯示正確的值(prev pins = 7,new pins = 0,view pins = 0)。我添加了history不帶縮放按鈕的視圖,以確保它正在發(fā)生變化——而且確實(shí)發(fā)生了變化(所以我認(rèn)為沒有必要發(fā)布 XAML)。我應(yīng)該如何更改 MapView 以在導(dǎo)航到歷史記錄時(shí)隱藏圖釘并在切換回默認(rèn)視圖時(shí)顯示它們?或者是否有更好的方法來“分組”Pin 并根據(jù)名稱隱藏/顯示它們?更新 我認(rèn)為這可能很重要:public Pin AddMarker(Position point) { var pin = new Pin(MapView) { Label = "PinType.Pin", Position = point, Type = PinType.Pin, Transparency = 0.5f, Color = Xamarin.Forms.Color.FromRgb(2, 144, 210), Scale = 0.5f, }; MapView.Pins.Add(pin); return pin; }這是我添加 Pin 圖以查看的方式。這個(gè)和上面的MapView是一樣的(所有代碼都來自于MapService)。
如何用單獨(dú)的 Pin 替換 MapView?
料青山看我應(yīng)如是
2022-11-21 21:23:04