[英]How do i get a property from a selected ListBox Control 's listboxitem ? C#
就像標題說的那樣,我想從按鈕上單擊的選定列表框項中獲取屬性的值
<ListBox x:Name="IconListbox" Background="{x:Null}" BorderBrush="Black">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBoxItem x:Name="defaultIcon">
<Grid Background="Black">
<Border BorderBrush="#FF1EF3F3" BorderThickness="2">
<Image x:Name="defaultIconImage" Width="50" Height="50" Source="icon.png"/>
</Border>
</Grid>
</ListBoxItem>
<ListBoxItem>
<Grid Background="Black">
<Border BorderBrush="#FF1EF3F3" BorderThickness="2">
<Image x:Name="secondIconImage" Width="50" Height="50" Source="SecondIcon.png"/>
</Border>
</Grid>
</ListBoxItem>
</ListBox>
例如,如果我單擊按鈕,它將返回當前所選項目的圖像源。 因此,如果選擇了ListboxItem defaultIcon,則應返回defaulticon.png。 我怎樣才能做到這一點 ?
編輯:
也許我通過嘗試使用列表框而采取了錯誤的方法。 我對Xaml代碼非常陌生,因此我將盡力更好地解釋我想要的結果。
這是一張圖片,我將用來嘗試解釋: 圖片
所以我想要的是當選擇1時,當我單擊“保存”按鈕時,我需要它來返回藍色火焰圖像的來源
當選擇2時,我單擊保存按鈕時需要它返回藍色Facebook圖像的來源
IconListbox.SelectedItem,然后對其進行投射或創建它們的新對象。
例
Image i = (Image)IconListbox.SelectedItem;
您可以在SelectedItem內找到圖像,如下面的代碼
var selectedItem = IconListbox.SelectedItem as ListBoxItem;
if (selectedItem != null)
{
var image = selectedItem.GetChildOfType<Image>();
if (image != null)
{
var source = image.Source;
}
}
擴展方法以獲取特定類型的子級
public static T GetChildOfType<T>(this DependencyObject depObj) where T : DependencyObject
{
if (depObj == null) return null;
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
var child = VisualTreeHelper.GetChild(depObj, i);
var result = (child as T) ?? GetChildOfType<T>(child);
if (result != null) return result;
}
return null;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.