如何使用wpf c#使用多个ListBox时,在ListBox中处理项目突出显示#

时间:2015-12-17 06:05:38

标签: c# wpf

我在我的应用程序中使用了多个自定义ListBox。 我希望当我点击其中一个ListBox中的项目然后在其他ListBox中突出显示应该删除。我想要一次选择一个ListBox中的项目。我在这里提供示例代码

MainWindow.xaml

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Grid Grid.Column="0">
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid Grid.Row="0">
                <view:ListBox_UserControl x:Name="Control_1"/>
            </Grid>
            <Grid Grid.Row="1">
                <view:ListBox_UserControl x:Name="Control_2"/>
            </Grid>
            <Grid Grid.Row="2">
                <view:ListBox_UserControl x:Name="Control_3"/>
            </Grid>
        </Grid>
        <Grid Grid.Column="1" Background="Aqua">

        </Grid>
    </Grid>
</Window>

MainWindow.xaml.cs

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            Control_1.ListBox_ItemSource = List_1;
            Control_2.ListBox_ItemSource = List_1;
            Control_3.ListBox_ItemSource = List_1;
        }

        List<string> List_1 = new List<string>()
        {
            "Item_1",
            "Item_2",
            "Item_3",
            "Item_4",
            "Item_5"
        };
    }

ListBox_UserControl.xaml

 <Grid>
        <ListBox Name="ListBox_1">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding }" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown"/>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>  
    </Grid>

ListBox_UserControl.xaml.cs

 public partial class ListBox_UserControl : UserControl
    {
        protected event MouseButtonEventHandler TextBlock_Click;

        public ListBox_UserControl()
        {
            InitializeComponent();
        }

        public List<string> ListBox_ItemSource
        {
            set
            {
                ListBox_1.ItemsSource = value;
            }
        }

        private void TextBlock_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            MouseButtonEventHandler handler = TextBlock_Click;

            if(handler!=null)
            {
                handler(sender, e);
            }
        }
    }

0 个答案:

没有答案