Как я могу получить табличку с данными для заполнения единой ячейки сетки?

Вот мой 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>

этот подход также поможет вам удалить выбранный фон (обычно синий), если вы хотите удалить его тоже

Другие вопросы по тегам