プログラムで ListBox に追加しようとしているカスタム ListBoxItem があり、アイテムの内容をラップしたいです。
カスタム ListBoxItem は次のとおりです。
class PresetListBoxItem : ListBoxItem
{
public uint[] preset;
public PresetListBoxItem(uint[] preset = null, string content = "N/A")
: base()
{
this.preset = preset;
this.Content = content;
}
}
そしてXAML:
<ListBox Name="sortingBox" Margin="5,5,0,5" Width="150" MaxWidth="150" ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="2" CornerRadius="3" Margin="3">
<TextBlock Text="{Binding Path=Text}" TextWrapping="WrapWithOverflow" />
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
そして、追加を行うコード:
PresetListBoxItem item = new PresetListBoxItem();
item.preset = new uint[] { };
item.Content = "This is a test of an extended line of text.";
sortingBox.Items.Add(item);
コードを実行すると、アイテムがボックスに追加されますが、境界線がまったく表示されず、行が折り返されません。
私は答えを求めて SO と Google を調べ、ListBoxes と ListViews の両方を使用しましたが、何も機能していないようです。