C# 为什么我的ListBoxItem样式在更改内容时重置?

C# 为什么我的ListBoxItem样式在更改内容时重置?,c#,wpf,listbox,listboxitem,C#,Wpf,Listbox,Listboxitem,我有一个包含2个列表框项目的列表框: <ListBox Name="Monday" HorizontalAlignment="Left" Height="65.125" Margin="78,45.625,0,0" VerticalAlignment="Top" Width="139" Style="{DynamicResource monday}" MouseUp="Monday_MouseUp"> <ListBoxItem Name="MondayLB1" Cont

我有一个包含2个列表框项目的列表框:

<ListBox Name="Monday" HorizontalAlignment="Left" Height="65.125" Margin="78,45.625,0,0" VerticalAlignment="Top" Width="139" Style="{DynamicResource monday}" MouseUp="Monday_MouseUp">
    <ListBoxItem Name="MondayLB1" Content="24" HorizontalAlignment="Center" Margin="0,20,0,0" FontSize="20" Height="22" Foreground="White" Focusable="False">
    </ListBoxItem>
    <ListBoxItem Content="Февраль" HorizontalAlignment="Center" VerticalAlignment="Bottom" Foreground="White" Focusable="False">
    </ListBoxItem>
</ListBox>
my listboxitems的样式重置-字体大小、字体前景、对齐-转为默认值


我必须做什么?

由于您正在编写过程代码,而且很难不重用您轻松拥有的任何样式,因此我建议您阅读更多有关数据绑定的内容。但是为了回答你的问题,下面是发生的事情

之所以重置
列表框
项的样式,是因为您覆盖了实际项,即
列表框
,并将其赋值为
字符串
,这样列表框的输出将只包含
字符串
值,而该值中没有任何内容,只是将其转换为内部有一个正常的
Textblock
控件

listik[tmp].Items[0] = localDateTime.Day.ToString();
把它改成这样

Monday.Items[0] = new ListBoxItem()
            {
                Content = localDateTime.Day.ToString(),
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment = VerticalAlignment.Bottom,
                Foreground = new SolidColorBrush(Colors.White),
                Height= 22,
                Focusable = false
            };

或者,您可以为
listboxitem
定义
样式,然后将新listboxitem的样式设置为新创建的样式。

不要在WPF中操作过程代码中的UI元素。改用数据绑定,您将不会遇到这些问题。您的意思是设置listboxitem内容属性,如下所示:MainWindow.Monday.content=“dadasd”?我的意思是。看来你有很多书要读。
Monday.Items[0] = new ListBoxItem()
            {
                Content = localDateTime.Day.ToString(),
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment = VerticalAlignment.Bottom,
                Foreground = new SolidColorBrush(Colors.White),
                Height= 22,
                Focusable = false
            };