Как я могу получить табличку с данными для заполнения единой ячейки сетки?
Вот мой xaml. Мне нужна красная сетка, чтобы заполнить всю клетку.
<UserControl x:Class="Atelis.Tcc.Client.CheckList_TileView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
DataContext="{Binding Model}">
<ListBox ItemsSource="{Binding Checks}" SelectedItem="{Binding SelectedCheck}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns=" 3 "/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="Red" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding Path=DataContext.OpenSelectedCheck, ElementName=TileView}"/>
</Grid.InputBindings>
<StackPanel>
<TextBlock Text="{Binding CheckRoot.CheckNum}"/>
<TextBlock Text="{Binding CheckRoot.CheckDate}"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Моя цель - позволить пользователю щелкнуть в любом месте ячейки, чтобы выполнить команду InputBinding. Так что, если есть другой способ достичь этой цели, этого также будет достаточно в качестве ответа.
1 ответ
Решение
Если я вас правильно понял, похоже, ваши ячейки не полностью растянуты в списке
так что установка HorizontalContentAlignment="Stretch"
& VerticalContentAlignment="Stretch"
сделает свое дело
<ListBox HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
ItemsSource="{Binding Checks}"
SelectedItem="{Binding SelectedCheck}" >
Альтернативный подход
<ListBox ItemsSource="{Binding Checks}"
SelectedItem="{Binding SelectedCheck}" >
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
этот подход также поможет вам удалить выбранный фон (обычно синий), если вы хотите удалить его тоже