C# 如何将combobox选定项设置为字符串
如何获取从itemsource填充到字符串的combobox选定项,以便我可以在另一个空白的帖子中使用它,如C# 如何将combobox选定项设置为字符串,c#,xaml,C#,Xaml,如何获取从itemsource填充到字符串的combobox选定项,以便我可以在另一个空白的帖子中使用它,如string bolts=combobox\u Copy.Text或字符串螺栓=comboBox.Copy.SelectedItem给出null private void boltPatterns() { { try { string Url = URL_Domain + "r
string bolts=combobox\u Copy.Text代码>或字符串螺栓=comboBox.Copy.SelectedItem代码>给出null
private void boltPatterns()
{
{
try
{
string Url = URL_Domain + "resources/bolt-pattern";
Uri serviceUri = new Uri(Url);
using (WebClient webClient = new WebClient())
{
webClient.Encoding = Encoding.UTF8;
string api = webClient.DownloadString(serviceUri);
List<boltPatterns> values = JsonConvert.DeserializeObject<List<boltPatterns>>(api);
comboBox_Copy.ItemsSource= values;
}
}
private void模式()
{
{
尝试
{
字符串Url=Url\u域+“资源/螺栓模式”;
Uri serviceUri=新的Uri(Url);
使用(WebClient WebClient=new WebClient())
{
webClient.Encoding=Encoding.UTF8;
stringapi=webClient.DownloadString(serviceUri);
列表值=JsonConvert.DeserializeObject(api);
comboBox_Copy.ItemsSource=值;
}
}
XAML
您正在使用绑定(这是一件好事),因此您不需要(在MVVM中,大多数情况下不应该)访问组合框本身
如果要使用MVVM,请在顶级组件上设置此DataContext
以启用与代码隐藏属性的绑定:
DataContext="{Binding RelativeSource={RelativeSource Self}}"
然后在代码隐藏类中创建类型为boltPatterns
的属性SelectedBoltPattern
(这就是您在示例中的拼写方式)
SelectedItem="{Binding SelectedBoltPattern}"
请注意,这与属性名称匹配
在代码隐藏中,您可以使用this.SelectedBoltPattern
访问当前选定的项目
一旦你习惯了绑定,你可能会想使用简单的MVVM框架(如Caliburn.Micro)来执行最简单的应用程序,这些框架使这些事情变得非常简单。这给了我一个空引用并将其发送到组合框选择更改事件处理程序,当他们选择一个项目时,字符串将更新,进行一些检查以验证未选择任何内容,因此if(comboBox.SelectedIndex>-1)在将其分配给字符串螺栓之前,您还可以检查comboBox.SelectedItem!=null
,它仍然只在选择更改事件中起作用,然后访问此.BoltPattern.ToString()的可能性有多大因为我缺少了一个取决于绑定位置的定义。您是否使用任何MVVM框架?或者这只是带有代码隐藏的XAML?是否在任何地方设置了DataContext
?您可能只需要定义属性BoldPattern
(嘿,您在SelectedItem=“{Binding BoltPattern}”
中使用过它)不,只是xaml,后面有代码,我没有设置任何代码datacontext@KewinBjörkNielsen I添加了必要的步骤来启用绑定到代码隐藏。请注意,开始使用不带代码隐藏的绑定可能是值得的(这将引导您使用MVVM)。
string bolts = comboBox.Text.ToString();
SelectedItem="{Binding SelectedBoltPattern}"
string bolts = comboBox.Text.ToString();