c# - WPF将值从TextBlock发送到方法
问题描述
主窗口.xaml
<TextBox Text="{Binding SummonerNameDTO}"/>
<Button Click="Button_Click">Find</Button>
Button_Click
private void Button_Click(object sender, RoutedEventArgs e)
{
var SummonerName = _summonerDTOService.GetSummonerDTO(_viewModel.SummonerNameDTO).Id;
}
SummonerDTOResponse GetSummonerDTO()
public class SummonerDTOService
{
RestClient client = new RestClient("https://euw1.api.riotgames.com/lol/summoner/v4/summoners/");
public SummonerDTOResponse GetSummonerDTO(string SummonerName)
{
var request = new RestRequest("by-name/{summonerName}")
.AddParameter("summonerName", SummonerName, ParameterType.UrlSegment)
.AddParameter("api_key", "api-key");
var response = client.Execute<SummonerDTOResponse>(request);
if (!response.IsSuccessful)
{
return default;
}
return response.Data;
}
}
public class SummonerDTOResponse
{
public string Id { get; set; }
}
}
我想从 TextBlock 值发送到 summonerDTOResponse GetSummonerDTO()。
解决方案
为 TextBlock 添加名称
<TextBox x:Name="txtSummonerNameDTO" Text="{Binding SummonerNameDTO}"/>
并使用 TextBlock 值传递
var summonerDTO = _summonerDTOService.GetSummonerDTO(txtSummonerNameDTO.Text);
由于 TextBox 的 Text 属性绑定到SummonerNameDTO
视图模型中的属性,因此您通常会访问视图模型而不是 UI:
var summonerDTO = _summonerDTOService.GetSummonerDTO(
((YourViewModel)DataContext).SummonerNameDTO);
推荐阅读
- javascript - Moment.js 将 x 分钟转换为 y 小时 z 分钟
- c++ - 重新定义预定义的 errno 错误消息 (E2BIG)
- c++ - 为什么 getline() 没有读取文本文件中的所有内容?
- linux - 如何让用户在通过 bash 脚本执行一堆任务时更正错误?
- java - 如何在 HttpsURLConnection 上以更安全的方式传递用户和密码?
- xcode - 避免在 XCTest UI 测试中恢复应用程序状态
- oop - 用于 A 类和 C 类的 UML 关系,其中 C 类是 B 类的成员,A 类取决于 B 类
- java - Integer.valueOf 阿拉伯数字工作正常,但 Float.valueOf 相同数字给出 NumberFormatException
- java - Spring Gradle 库中的 Controller / RestController
- python - 如何在 Python 中更改条形图的顺序?