私はDataTemplate
WPF のために書いたListBox
。しかし、3 つの特定のアイコンを 2 つ使用すると、レイアウトが変わります。
http://i.stack.imgur.com/xMp7F.png
それは私のItemTemplate
です:
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding id}" Name="tbID" Margin="5" FontWeight="Bold" FontSize="12" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Image Height="25" Width="25" Source="{Binding img_src}" HorizontalAlignment="Center" Grid.Column="1" />
<StackPanel Margin="10, 0, 0, 0" Grid.Column="2" Orientation="Vertical" >
<TextBlock FontWeight="Bold" FontSize="11" Text="{Binding errorOriginal}"/>
<TextBlock FontSize="10" Text="{Binding errorGerman}" />
<!-- Margin="10, 0, 0, 0" -->
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
そして、これは私のクラスです:
public class compEntry
{
public int id { get; set; }
public string img_src { get; set; }
public string errorOriginal { get; set; }
public string errorGerman { get; set; }
}
私の間違いについて教えてください。
//編集:クラスを手動で入力すると(文字列なし)、動作します:
compList.Add(new compEntry() { id = i, img_src = img, errorOriginal = errText[i], errorGerman = trans }); // not working
compList.Add(new compEntry() { id = i, img_src = img, errorOriginal = "test", errorGerman = "test" });//working
//EDIT2: 解決策が見つかりました。文字列をトリミングするだけです:
compList.Add(new compEntry() { id = i, img_src = img, errorOriginal = errText[i].Trim(), errorGerman = trans.Trim() });