2017-04-19 57 views
0

我在Visual Studio中制作了一个WPF GUI,并使用PowerShell进行操作。我目前正在研究如何使用GUI元素更改数据,并且陷入ComboBox中。下面是相关的代码:如何从ComboBox SelectedItem中获取文本?

$testVar=$WPFcombobox.SelectedItem.ToString() 
Write-Host $testVar; 

而这里的输出:

System.Windows.Controls.ComboBoxItem:test123

我想回去只是

test123

我也试过$testVar=$WPFcombobox.SelectedItem

但是得到了同样的结果。

我也试过$testVar=$WPFcombobox.SelectedItem.Text.

和什么也得不到。如果在此之后添加.ToString(),则会出现“空值”错误。

我知道我可以创建一个新变量并切断不相关的部分,但是如果有更好的方法来获得我想要的输出,我宁愿这样做。

+2

[“ComboBox.Text地产 - 获取或设置当前选定项目的文本。”(https://msdn.microsoft.com/en-us/ library/system.windows.controls.combobox.text(v = vs.110).aspx)? – TessellatingHeckler

+0

@TessellatingHeckler我正在使用PowerShell。您的链接适用于C#,C++,F#和VB。 – jdope

+0

您的PowerShell使用不同的.Net框架到C#,C++,F#和VB吗?我的不是。 – TessellatingHeckler

回答

0

假设$WPFComboBox是你的控件的名称:

$TestVar = $WPFComboBox.Text 
Write-Host $TestVar 

无需找到所选项目。所选项目的值将自动分配给ComboBox.Text属性。

+0

啊!所以和TextBox一样。我感到很傻。谢谢! – jdope

0

你应该在ComboBoxItemContent属性调用ToString()

testVar=$WPFcombobox.SelectedItem.Content.ToString() 

您可能需要先投SelectedItem财产。这就是如何在C#中做到这一点:

var item = WPFcombobox.SelectedItem as ComboBoxItem; 
string text = item.Content.ToString(); 
相关问题