我如何将我的组合框选择的项目从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/