如何解决如何从选定的选择器更新标签元素? Xamarin 表单
我目前正在开展一个向您显示实时股票价格的项目。我想通过选择器系统获取任何符号的价格,该系统通过将所选项目添加到下载字符串请求的链接中来显示选择器中所选项目的价格。我遇到的问题是,当我更改选择器时,什么也没有发生。
C# 代码:
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace Stock_WatchList
{
[XamlCompilation(XamlCompilationoptions.Compile)]
public partial class sybmolSelector : ContentPage
{
public string price { get; set; }
public sybmolSelector()
{
InitializeComponent();
BindingContext = this;
}
private void SymbolSelector_SelectedindexChanged(object sender,EventArgs e)
{
Picker picker = sender as Picker;
var selectedItem = picker.SelectedItem;
var link = "https://sandBox.iexapis.com/stable/stock/" + selectedItem + "/price?token=Tsk_57bebc1d051340dbaad8656ab0027e90";
var client1 = new WebClient();
string a = client1.DownloadString(link);
price = "$" + a;
}
}
}
这是 Xamarin.Forms 代码:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Stock_WatchList.sybmolSelector"
BackgroundColor="Black"
NavigationPage.IconColor="LimeGreen">
<ContentPage.Content>
<StackLayout>
<Label TextColor="LimeGreen" BackgroundColor="Black" Text="----------------------- Select A Symbol -------------------------" FontSize="19" LineBreakMode="TailTruncation"></Label>
<Picker x:Name="Picker" SelectedindexChanged="SymbolSelector_SelectedindexChanged" TextColor="LimeGreen" BackgroundColor="#111111">
<Picker.Items>
<x:String>AAPL</x:String>
<x:String>NIO</x:String>
<x:String>AAPL</x:String>
<x:String>NIO</x:String>
<x:String>AAPL</x:String>
<x:String>NIO</x:String>
<x:String>AAPL</x:String>
<x:String>NIO</x:String>
<x:String>AAPL</x:String>
<x:String>NIO</x:String>
<x:String>AAPL</x:String>
<x:String>NIO</x:String>
<x:String>AAPL</x:String>
<x:String>NIO</x:String>
<x:String>AAPL</x:String>
<x:String>NIO</x:String>
</Picker.Items>
</Picker>
<Label Margin="5" Text="{Binding selectedItem}" HorizontalOptions="Start" TextColor="White" FontSize="40"/>
<Label Margin="5,5,5" Text="{Binding price}" HorizontalOptions="Start" TextColor="White" FontSize="50"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
提前致谢,内森 T。
解决方法
为您的标签命名:
<Label x:Name="lblPicker" TextColor="LimeGreen" BackgroundColor="Black" Text="----------------------- Select A Symbol -------------------------" FontSize="19" LineBreakMode="TailTruncation"></Label>
然后你可以在你的代码后面访问这个标签,并将picker值分配给标签:
private void SymbolSelector_SelectedIndexChanged(object sender,EventArgs e)
{
Picker picker = sender as Picker;
var selectedItem = picker.SelectedItem;
var link = "https://sandbox.iexapis.com/stable/stock/" + selectedItem + "/price?token=Tsk_57bebc1d051340dbaad8656ab0027e90";
var client1 = new WebClient();
string a = client1.DownloadString(link);
lblPicker.Text = "$" + a;
}
您也可以在 viewmodel 中执行此操作,但为此您需要将选择器的 ItemSource 属性与 ViewModel 的属性绑定,但在那之前您可以通过这种方式进行代码隐藏
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。