📜  wpf 列表框绑定更改所选项目的样式 - C# (1)

📅  最后修改于: 2023-12-03 15:21:15.832000             🧑  作者: Mango

WPF 列表框绑定更改所选项目的样式 - C#

本教程将介绍如何在 WPF 应用程序中使用数据绑定和样式更改为列表框的选定项。

步骤 1:创建 WPF 应用程序

在 Visual Studio 中,创建一个新的 WPF 应用程序。

步骤 2:添加列表框

在 MainWindow.xaml 中,添加以下代码片段以添加列表框:

<ListBox x:Name="myListBox" ItemsSource="{Binding}" SelectionChanged="myListBox_SelectionChanged">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

此列表框绑定到数据上,当数据源更改时,将更新该列表。

步骤 3:定义样式

在 App.xaml 中定义以下样式:

<Application.Resources>
    <Style TargetType="ListBoxItem">
        <Setter Property="Background" Value="White" />
        <Setter Property="Foreground" Value="Black" />
    </Style>

    <Style TargetType="ListBoxItem" x:Key="SelectedListBoxItemStyle">
        <Setter Property="Background" Value="Blue" />
        <Setter Property="Foreground" Value="White" />
    </Style>
</Application.Resources>

此样式包括两个部分:

  1. 目标类型为 ListBoxItem 的通用样式。
  2. 目标类型为 ListBoxItem,键为 SelectedListBoxItemStyle 的已选中列表框项的样式。
步骤 4:更改所选项目的样式

在 MainWindow.xaml.cs 中,添加以下代码:

private void myListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    foreach (var item in e.RemovedItems)
    {
        var listBoxItem = myListBox.ItemContainerGenerator.ContainerFromItem(item) as ListBoxItem;
        if (listBoxItem != null)
        {
            listBoxItem.Style = (Style)Resources["DefaultListBoxItemStyle"];
        }
    }

    foreach (var item in e.AddedItems)
    {
        var listBoxItem = myListBox.ItemContainerGenerator.ContainerFromItem(item) as ListBoxItem;
        if (listBoxItem != null)
        {
            listBoxItem.Style = (Style)Resources["SelectedListBoxItemStyle"];
        }
    }
}

此代码将更改已选中列表框项的样式,将其设置为 SelectedListBoxItemStyle,将上一个选择更改为 DefaultListBoxItemStyle。

步骤 5:运行应用程序

现在,您的应用程序已准备就绪。当您选择列表框中的项目时,它们将更改为所选 ListBoxItem 样式。

结论

通过本教程,您已经学会了如何使用数据绑定和样式更改为 WPF 列表框的选定项。这有助于增强您的应用程序的可视化效果,并提供更好的用户体验。