В настоящее время я работаю над приложением C# WPF, где я пытаюсь добавить изображение, за которым следует некоторый текст в каждом элементе списка.Добавление изображения в элемент ListBox
У меня есть привязка для текста, но изображение не отображается.
Ниже моя XAML:
<Window x:Class="ServerAdministrator.FtpDirectoryListing"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ServerAdministrator"
Title="FTP Directory Listing" Height="391" Width="599">
<Grid>
<StatusBar Height="30" Margin="0,322,0,0" Name="statusBar1" VerticalAlignment="Top" />
<ToolBar Height="26" Name="toolBar1" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="12,32,0,0" Name="textBox1" VerticalAlignment="Top" Width="517" />
<ListBox x:Name="lstDirecotryListing" Height="233" HorizontalAlignment="Left" Margin="12,61,0,0" VerticalAlignment="Top" Width="553">
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type local:DirectoryListing}">
<StackPanel>
<TextBlock Margin="3" Text="{Binding path}" />
<ContentControl Margin="3" Content="{Binding image}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Window>
Ниже мой DirectoryListing класс
class DirectoryListing
{
public string path {get; set;}
public Image image{get; set;}
public DirectoryListing(Image imgage, String path)
{
this.image = image;
this.path = path;
}
}
Ниже, как я добавляю элементы в ListBox
Image image = new Image();
BitmapImage bi = new BitmapImage(new Uri(@"C:\Users\Chris\Documents\Visual Studio 2010\Projects\ServerAdministrator\ServerAdministrator\bin\Debug\images\directory.png"));
image.Source = bi;
lstDirecotryListing.Items.Add(new DirectoryListing(image, "hello"));
Текст становится добавленным отлично, но не изображение.
Я не уверен, если это связано, но я получаю следующее в консоли вывода в VS2010
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ItemsControl', AncestorLevel='1''. BindingExpression:Path=HorizontalContentAlignment; DataItem=null; target element is 'ComboBoxItem' (Name=''); target property is 'HorizontalContentAlignment' (type 'HorizontalAlignment') System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ItemsControl', AncestorLevel='1''. BindingExpression:Path=VerticalContentAlignment; DataItem=null; target element is 'ComboBoxItem' (Name=''); target property is 'VerticalContentAlignment' (type 'VerticalAlignment')
Спасибо за любую помощь вы можете предоставить
UPDATE
I «Он получил работу благодаря ответу Клеменса, все еще используя те же две переменные, что и путь, а не путь к изображению, но в любом случае он отображает изображение и текст сейчас.
Проблема заключается в том, что он отображает текст, а снимок снизу, мне нужно показать изображение и текст бок о бок, как я могу это сделать?
Исключением является элемент HorizontalContentAlignment в элементе со списком, который вряд ли связан с этой проблемой. Ваш код выглядит хорошо, я посмотрю еще и надеюсь, что вы получите ответ! – BradleyDotNET
Можете ли вы разместить 'XAML', где определен' ComboBoxItem' –
Я снова посмотрел. это сообщение о поле со списком, для предыдущего диалога, а не с вопросом – Boardy