Tag: itemtemplate

我怎样才能在WPF的列表框中的所有项目相同的宽度列?

我有一个ListBox和一个ItemTemplate组成的一个TextBlock和一个ComboBox 。 问题是TextBlock内的文本的宽度是不相同的每个项目和ComboBox控件不alignment。 如何在模板中设置TextBlock ,使所有项目的宽度相同,即最宽的一个? 这是我的xaml: <ListBox MinHeight="100" ItemsSource="{Binding Trainees}"> <ListBox.ItemTemplate> <DataTemplate> <Grid Margin="1"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <TextBlock VerticalAlignment="Center" Grid.Column="0"> <TextBlock.Text> <MultiBinding StringFormat="{}{0}, {1}"> <Binding Path="LastName" /> <Binding Path="FirstName" /> </MultiBinding> </TextBlock.Text> </TextBlock> <ComboBox HorizontalAlignment="Left" Grid.Column="1" ItemsSource="{Binding Source={StaticResource Functions}}" SelectedValue="{Binding Path=Function}" MinWidth="100" /> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>

用于ListBox项目的DataTemplate中的IsSelected的WPF触发器

我有一个列表框,我有以下的ItemTemplate: <DataTemplate x:Key="ScenarioItemTemplate"> <Border Margin="5,0,5,0" Background="#FF3C3B3B" BorderBrush="#FF797878" BorderThickness="2" CornerRadius="5"> <DockPanel> <DockPanel DockPanel.Dock="Top" Margin="0,2,0,0"> <Button HorizontalAlignment="Left" DockPanel.Dock="Left" FontWeight="Heavy" Foreground="White" /> <Label Content="{Binding Path=Name}" DockPanel.Dock="Left" FontWeight="Heavy" Foreground="white" /> <Label HorizontalAlignment="Right" Background="#FF3C3B3B" Content="X" DockPanel.Dock="Left" FontWeight="Heavy" Foreground="White" /> </DockPanel> <ContentControl Name="designerContent" Visibility="Collapsed" MinHeight="100" Margin="2,0,2,2" Content="{Binding Path=DesignerInstance}" Background="#FF999898"> </ContentControl> </DockPanel> </Border> </DataTemplate> 正如你所看到的ContentControl的可见性设置为折叠。 我需要定义一个触发器,使可见性被设置为“可见” 当ListItem被选中,但我无法弄清楚。 有任何想法吗? 更新:当然,我可以简单地复制DataTemplate,并添加触发器到有问题的ListBox使用一个或另一个,但我想防止重复此代码。