0

私はDataTemplateWPF のために書いた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() }); 
4

1 に答える 1