Tag: listboxitem

WPF – 如何结合DataTrigger和触发器?

注意我已经问了相关的问题: 如何结合DataTrigger和EventTrigger? 我有一个包含几个项目的列表框。 该项目的类实现INotifyPropertyChanged并具有属性IsAvailable 。 我使用该属性来使用不同的颜色在列表中指示不可用的选项。 但是,如果选定的项目不可用,则前景色应为红色。 <ListBox> <ListBox.Resources> <DataTemplate DataType="{x:Type local:InstitutionViewModel}"> <TextBlock Name="Name" Text="{Binding Name}"/> <DataTemplate.Triggers> <DataTrigger Binding="{Binding IsAvailable}" Value="False"> <Setter TargetName="Name" Property="Foreground" Value="#888"/> </DataTrigger> </DataTemplate.Triggers> </DataTemplate> </ListBox.Resources> </ListBox> 我使用上面的数据触发器灰化不可用的项目。 我面临的问题是,项目被选中的事实与模板绑定到的底层数据无关。 我真正想要的是某种多触发器,它支持依赖属性( ListBoxItem.IsSelected )上的常规Trigger和绑定数据项上的DataTrigger 。 如果不将select的概念引入我的视图模型,这可以做到吗? 对于任何人想知道为什么我不禁用不可用的项目,请理解,应用程序的要求是可选的不可用选项。 实际上有几个列表框,并在其中一个效果select其他的可用。 我不能禁用这些项目,因为如果项目在之前的select中被禁用,用户将无法改变他们的想法或探索不同的组合。

C#列表框项目双击事件

我有一些项目的列表框。 无论如何,我可以附加一个双击事件到每个项目? Item 1 Item 2 Item 3 如果我要双击项目2,将popup一个消息框“Item 2” 我将如何做到这一点?

双击列表框项目以打开浏览器

我有一个ListBox在我的wpf窗口绑定到ObervableCollection 。 我想打开浏览器,如果有人点击ListBox一个元素(就像一个链接)。 有人能告诉我如何做到这一点? 我用listboxviews发现了一些东西,它只是用这种方式,或者只是使用ListBox吗? 你的 塞巴斯蒂安

如何让ListBox ItemTemplate水平拉伸ListBox的全部宽度?

我想让ListItems的橙色背景延伸到ListBox的整个宽度。 目前它们只与FirstName + LastName一样宽。 我已经设置了每个元素:Horizo​​ntalAlignment =“Stretch”。 我希望ListboxItems的背景随着用户拉伸Listbox而展开,所以我不想放入绝对值。 我需要做什么,以便ListBoxItems的背景颜色填充ListBox的宽度? <Window x:Class="TestListBoxSelectedItemStyle.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:TestListBoxSelectedItemStyle" Title="Window1" Height="300" Width="300"> <Window.Resources> <local:CustomerViewModel x:Key="TheDataProvider"/> <DataTemplate x:Key="CustomerItemTemplate"> <Border CornerRadius="5" Background="Orange" HorizontalAlignment="Stretch" Padding="5" Margin="3"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Width="Auto"> <TextBlock HorizontalAlignment="Stretch"> <TextBlock.Text> <MultiBinding StringFormat="{}{0} {1}"> <Binding Path="FirstName"/> <Binding Path="LastName"/> </MultiBinding> </TextBlock.Text> </TextBlock> </StackPanel> </Border> </DataTemplate> </Window.Resources> <Grid> <ListBox ItemsSource="{Binding Path=GetAllCustomers, Source={StaticResource TheDataProvider}}" ItemTemplate="{StaticResource […]

ListBoxItem中的复杂UI

在WPF中,我可以通过向ListBox提供一个ItemTemplate来将任何UI添加到ListBoxItem : <ListBox ItemsSource="{Binding}"> <ListBox.ItemTemplate> <DataTemplate> <Border BorderThickness="1" BorderBrush="Gray" CornerRadius="8" Padding="4,0,4,0"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="50"/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <CheckBox Grid.Column="1" Content="Is Active Customer" IsChecked="{Binding IsActive}"/> <Label Content="Id:" Grid.Row="1" HorizontalAlignment="Right"/> <Label Content="Name:" Grid.Row="2" HorizontalAlignment="Right"/> <TextBox Text="{Binding Id}" Grid.Row="1" Grid.Column="1"/> <TextBox Text="{Binding Name}" Grid.Row="2" Grid.Column="1"/> </Grid> </Border> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 结果是: 有没有什么办法可以在Windows窗体中实现相同的function? 编辑: […]