[英]Set Default Value for binding combobox from json
我有一个组合框,其项目取自服务器上的 json。 我想将组合框的默认值设置为“Pendidikan Moral”(这是第 6 个索引)
XAML:
<ComboBox
x:Name="serialBox"
ItemsSource="{x:Bind SerialList}"
PlaceholderText="Pilih Serial"
SelectionChanged="SerialBox_SelectionChanged" />
代码:
List<Serial> SerialList = new List<Serial>();
try
{
string urlPath = "https://mhnkp2.com/school/api-v3/Fetch/serial";
var httpClient = new HttpClient(new HttpClientHandler());
var values = new List<KeyValuePair<string, string>>
{
};
httpClient.DefaultRequestHeaders.Add("SCH-API-KEY", "SCH_KEnaBiDeplebt");
var response = await httpClient.PostAsync(urlPath, new FormUrlEncodedContent(values));
response.EnsureSuccessStatusCode();
string jsonText = await response.Content.ReadAsStringAsync();
try
{
JsonObject jsonObject = JsonObject.Parse(jsonText);
JsonArray jsonData = jsonObject["data"].GetArray();
foreach (JsonValue groupValue in jsonData)
{
JsonObject groupObject1 = groupValue.GetObject();
string id = groupObject1["id"].GetString();
string name = groupObject1["nama"].GetString();
Serial serial = new Serial();
serial.ID = id;
serial.Name = name;
SerialList.Add(new Serial()
{
ID = serial.ID,
Name = serial.Name
});
}
serialBox.SelectedIndex = 6;
}
串口.cs
class Serial
{
public string ID { get; set; }
public string Name { get; set; }
public override string ToString()
{
return this.Name;
}
}
如何处理?
您的 SerialList 是否实现了 ObservableCollection? 这个集合知道如何通知 UI。 所以,还有一点。 x:Bind 绑定到类后面的代码。 SerialList 是隐藏的代码字段吗? 还是 ViewModel 的一部分?
还有一点:你运行 asink 操作。 但 XAML 会在创建时同时呈现。 您应该在构造函数中设置 SerialList 。 因为当您开始操作时,XAML 是在并行线程中呈现的。 因此,它可能面临空引用异常。 因为没有加载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.