C# 如何将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

如何获取从itemsource填充到字符串的combobox选定项,以便我可以在另一个空白的帖子中使用它,如
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();