2013-10-19 27 views
0

我已經爲WPF ListBox編寫了DataTemplate。但是,當我用我的3,佈局改變2個特定圖標:WPF/C#DataTemplate更改圖標的佈局原因

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() }); 
+0

所有圖像的大小是否相同? – OneFineDay

+0

是的。它們都有26x26的大小。即使我刪除了我的模板圖像,佈局錯誤仍然存​​在 – Giraffe

+2

這看起來有點奇怪......我能想到的唯一可能的解釋是錯誤文本在最後有換行符。 – McGarnagle

回答

0

找到了解決方案。只是修剪字符串:

compList.Add(new compEntry() { id = i, img_src = img, errorOriginal = errText[i].Trim(), errorGerman = trans.Trim() });