[英]Access unnamed control in xaml from code behind
我在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>
如何從SelcetionChanged
事件中的TextBlock
訪問字符串?
當前,當我正常選擇項目時,(我的ComboBox
)選定文本設置為
System.Windows.Controls.ComboBoxItem
這是ComboBoxItem.ToString()
方法的返回值!
如何更改基於xaml
的ComboBoxItem
的返回類型?
經過長期的研究,我找到了解決方案。 我創建了一個新的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>
現在,它就像一種魅力一樣工作,並且完全滿足我的需求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.