我有一个ListBox
,其中的项目是从项目源创建的,我需要每个项目都有一个边框,但我不知道我在哪里设置ListBox
项目的样式。
<ListBox x:Name="m_list">
<ListBox.ItemTemplate>
<DataTemplate>
<Expander IsExpanded="True">
<CustomUserControl />
</Expander>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsSource>
<Binding Path="DataToBeEditied" />
</ListBox.ItemsSource>
</ListBox>
自定义用户控件是我创建的用户控件,用于编辑DataToBeEdited中的数据ObservableCollection
数据
根据我所能找到的,应该有一种方法,但没有解释如何。 我该怎么做?
答案 0 :(得分:3)
您可以定义ItemContainerStyle
:
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="BorderThickness" Value="2" />
<Setter Property="BorderBrush" Value="Red" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
答案 1 :(得分:1)
尝试这样的事情:
<ListBox x:Name="m_list">
<ListBox.ItemTemplate>
<DataTemplate>
<Expander IsExpanded="True">
<Border BorderThickness="1" BorderBrush="Red">
<CustomUserControl />
<Border />
</Expander>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsSource>
<Binding Path="DataToBeEditied" />
</ListBox.ItemsSource>
</ListBox>
答案 2 :(得分:0)
以编程方式,每 ListBoxItem
执行一次以下操作:
var lbi = new ListBoxItem();
lbi.Width = 60;
lbi.BorderThickness = new Thickness(1);
lbi.BorderBrush = Brushes.Black;
lbi.Padding = new Thickness(3, 0, 3, 0);
lbi.Margin = new Thickness(3, 0, 3, 0);
lbi.Content = "xyz";
m_list.Items.Add(lbi);