[英]How to access ImageUrl property of the Image Control placed inside a ItemTemplate in the GridView
[英]How to access a control placed inside data template of listbox?
嗨,我有以下代码:
<ListBox x:Name="foldersListBox" Grid.Column="0" MouseLeftButtonUp="foldersListBox_MouseLeftButtonUp"
BorderThickness="0" Height="AUTO"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Disabled">
<DataTemplate>
<Border BorderBrush="LightGray"
BorderThickness="2"
CornerRadius="4">
<Image x:Name="folderImage" Width="70" Height="70" Margin="3" />
</Border>
</DataTemplate>
</ListBox>
现在,当我试图从后面的代码访问folderImage
。 我可以使用加载的事件并将发送者作为图像类型进行类型转换,但我不希望这样,因为我想在运行时绑定期间绑定图像源。 因此,即使我们将尝试加载事件,因为控件不会被加载,因此无法提供帮助。
帮助PLZ。
谢谢,Subhen
你的问题中有很多细节遗漏,但无论如何我都会勉强回答。 它与回答您的问题非常不同,但它可能会帮助您了解添加问题以指导答案所需的详细信息。 反过来,这个答案可以改进。 在一些迭代中你可能实际上得到了答案。
我猜你是绑定到一组代表“文件夹”的对象,但你想要以编程方式修改所呈现的图像,具体取决于每个对象的状态,例如一些FolderType属性。
解决方法是使用值转换器,如果您的图像来自有限集。
public class FolderToImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
Folder folder = value as Folder;
ImageSource result;
// Logic to determine which ImageSource to use for a folder.
return result;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
现在来看看这个XAML: -
<Grid x:Name="LayoutRoot">
<Grid.Resources>
<local:FolderToImageConverter x:Key="ImageConverter" />
</Grid.Resources>
<ListBox x:Name="foldersListBox">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="LightGray" BorderThickness="2" CornerRadius="4">
<Image Source="{Binding Converter={StaticResource ImageConverter}}" Width="70" Height="70" Margin="3" />
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
将Folder对象集合绑定到ListBox
ItemsSource
,它将使用转换器显示一组图像,以将Folder
对象转换为正确的ImageSource
实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.