1
프로그래밍 방식으로 ListBox에 추가하려고하는 사용자 지정 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);
내가 코드를 실행 여기에
사용자 정의 ListBoxItem의입니다 항목이 상자에 추가되지만 테두리가 전혀 표시되지 않고 줄을 줄 바꿈하지 않습니다.나는 SO와 Google의 답을 찾아 보았고 ListBox와 ListView를 모두 사용했지만 아무 것도 작동하지 않는 것 같습니다.
누군가 ListBox에서 해당 항목을 선택하면 관련 uint []를 가져와야하기 때문에 ListBoxItem에서 파생되는 사용자 지정 클래스를 사용하고 있습니다. 내가 그것을 할 수 생각할 수있는 유일한 다른 방법은 ListBoxItem 함께 목록에 인덱스를 어떻게 든 연결할 수 있으며, 일을 오류가 발생하기 쉬운 방식으로 보인다. – Abion47
ListBoxItem의 DataContext에서 uint []를 사용하여 클래스를 찾을 수 있습니다. – LPL