我如何将我的组合框选择的项目从itemssource填充到字符串,以便可以在我的帖子中使用它,而在另一个空白中,如string bolts = comboBox_Copy.Text;string bolts = 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;
                }
            }

XAML
 <ComboBox x:Name="comboBox_Copy" DisplayMemberPath="BoltPattern" SelectedItem="{Binding BoltPattern}">

最佳答案

您正在使用绑定(这是一件好事),因此您不需要(而且在MVVM中大多数情况下不应)访问组合框本身。

如果要使用MVVM,请在顶级组件上设置此DataContext以启用对代码隐藏属性的绑定:

DataContext="{Binding RelativeSource={RelativeSource Self}}"


然后在代码隐藏类中创建类型为SelectedBoltPattern的属性boltPatterns(这就是示例中的拼写方式)。在您的XAML中采用SelectedItem绑定来

SelectedItem="{Binding SelectedBoltPattern}"


请注意,这与属性名称匹配。

在隐藏的代码中,您可以使用this.SelectedBoltPattern访问当前选定的项目。

一旦习惯了绑定,您可能甚至想要使用简单的MVVM框架(例如Caliburn)进行最简单的应用程序。这些使这些事情变得非常容易。

关于c# - 如何使组合框选择的项目成为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46681280/

10-12 16:35