Ich arbeite derzeit an einer C# -WPF-Anwendung, wo ich versuche, ein Bild hinzuzufügen, gefolgt von etwas Text in jedem Listenelement.Bild zu ListBox Element hinzufügen
Ich habe die Bindung funktioniert für den Text, aber das Bild wird nicht angezeigt.
Unten ist mein 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>
Unten ist mein Directory Klasse
class DirectoryListing
{
public string path {get; set;}
public Image image{get; set;}
public DirectoryListing(Image imgage, String path)
{
this.image = image;
this.path = path;
}
}
Unten ist, wie ich Elemente der Listbox bin Hinzufügen
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"));
Der Text hinzugefügt wird immer gut, aber nicht das Bild.
Ich bin mir nicht sicher, ob es verwandt ist, aber ich folgend in der Konsolenausgabe in 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')
Vielen Dank für jede Hilfe erhalten können Sie
UPDATE
bieten mir habe es funktioniert dank Clemens Antwort, immer noch mit den gleichen zwei Variablen wie der Pfad ist nicht der Pfad zum Bild, aber wie auch immer, es zeigt jetzt das Bild und den Text.
Das Problem ist, es zeigt den Text und das Bild ist darunter, ich muss das Bild und den Text nebeneinander anzeigen, wie kann ich das tun?
Die Ausnahme ist für HorizontalContentAlignment auf einem Kombinationsfeld Element, nicht wahrscheinlich mit diesem Problem verbunden. Dein Code sieht gut aus, ich schaue noch mehr und ich hoffe du bekommst eine Antwort! – BradleyDotNET
Kannst du das 'XAML' posten, wo das' ComboBoxItem' definiert ist –
Ich habe nochmal gesucht. Diese Nachricht über das Kombinationsfeld bezieht sich auf einen vorherigen Dialog, nicht auf den mit dem Problem – Boardy