我在ComboBox
下面有大约20个以下内容(这意味着由于重复命名,我无法使用任何x:Name
参数):
<ComboBoxItem>
<StackPanel Orientation="Horizontal">
<Image Source="folder/someimage.png" Height="20" Width="20"/>
<TextBlock Text="SampleText" Margin="5,0,0,0"/>
</StackPanel>
</ComboBoxItem>
如何从TextBlock
事件中的SelcetionChanged
访问字符串?
目前,当我正常选择项目时,所选文本(我的ComboBox
)设置为
System.Windows.Controls.ComboBoxItem
这是ComboBoxItem.ToString()
方法的返回值!
如何更改基于xaml
的{{1}}的返回类型?
答案 0 :(得分:0)
经过长时间的研究,我找到了解决方案。我创建了一个新的UserControl
,然后将其添加为我ComboBox
的项目。
<强> MyComboBoxItem.xaml:强>
<StackPanel Orientation="Horizontal">
<Image x:Name="img" Source="{Binding Image, ElementName=myComboBoxItem}" Height="18" Width="18"/>
<TextBlock x:Name="txt" Text="{Binding Text, ElementName=myComboBoxItem}" Margin="5,0,0,0"/>
</StackPanel>
<强> MyComboBoxItem.xaml.cs:强>
public string Text
{
get { return txt.Text; }
set { txt.Text = value; }
}
public override string ToString()
{
return Text;
}
<强> MainWindow.xaml:强>
<ComboBox>
<local:MyComboBoxItem Image="image1.png" Text="Item1"/>
<local:MyComboBoxItem Image="image2.png" Text="Item2"/>
<local:MyComboBoxItem Image="image3.png" Text="Item3"/>
</ComboBox>
现在它就像一个魅力,完全符合我的想法。