Неверное расположение UniformGrid в ItemControl

Я пишу змейку и хочу сделать поле адаптивным. Для этого я использую ItemsControl в котором у меня есть UniformGrid, которому через привязку передаю нужное количество столбцов и строчек. У меня,во-первых не реагируют стили и не фасуются по гридам данные.

XAML:

        <Border Grid.Row="1" BorderThickness="4" BorderBrush="White" >
            <ItemsControl  Background="#3A4047"  ItemsSource="{Binding FieldView}" HorizontalAlignment="Center" VerticalAlignment="Center" >
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Border Width="20" Height="20" Margin="1" Background="Black" >
                            <Border.Style>
                                <Style TargetType="Border">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding State}" Value="Snake">
                                            <Setter Property="BorderBrush" Value="Blue"/>
                                            <Setter Property="Background" Value="DodgerBlue"/>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding State}" Value="Food">
                                            <Setter Property="BorderBrush" Value="Red"/>
                                            <Setter Property="Background" Value="LightPink"/>
                                            <Setter Property="CornerRadius" Value="9"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Border.Style>
                        </Border>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <UniformGrid Rows="{Binding DataContext.Height, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
                                                Columns="{Binding DataContext.Width, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"></UniformGrid>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
            </ItemsControl>

Код:

public ObservableCollection<ObservableCollection<Cell>> Field { get; set; }
        public ObservableCollection<Cell> FieldView { get; set; } = new ObservableCollection<Cell>();
   public int Width
        {
            get { return Field[0].Count; }
        }

        public int Height
        {
            get { return Field.Count; }
        }

Field - двумерный массив. FieldView - преобразованный в одномерный.

Хранимый объект:

 public class Cell : INotifyPropertyChanged
    {

        public Cell(CellState CState)
        {
            State = CState;
        }

        private CellState state;
        public CellState State
        {
            set
            {
                state = value;
                OnPropertyChenget();
            }

            get { return state; }
        }

        private void OnPropertyChenget([CallerMemberName] string prop = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
        }
        public event PropertyChangedEventHandler PropertyChanged;
    }

Ответы (0 шт):