Как исправить ошибку XLS1106 datacontext not set?
При выполнении анализа кода появляются такие сообщения:

Ниже приведен один из примеров кода, где нужно исправить это сообщение:
<Window x:Class="FitnesCentr.formAllClient"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:FitnesCentr"
mc:Ignorable="d"
Title="Клиенты фитнес-центра" Height="481.2" Width="884.8"
Background="LightSlateGray">
<Window.Triggers>
<EventTrigger RoutedEvent="Window.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
To="1" Duration="00:00:22" >
<DoubleAnimation.EasingFunction>
<BackEase EasingMode="EaseOut" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
<Window.Resources>
<Style TargetType="TextBox">
<Style.Triggers>
<EventTrigger RoutedEvent="TextBox.MouseDoubleClick">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Background.Color"
To="DarkSeaGreen" AutoReverse="True" Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
<Style TargetType="Label">
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontFamily" Value="Verdana"/>
<Setter Property="FontWeight" Value="Black"/>
</Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="FontSize" Value="14" />
<Setter Property="Foreground" Value="OrangeRed" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Label Content="Имя" HorizontalAlignment="Left" Margin="589,33,0,0" VerticalAlignment="Top"/>
<Label Content="Фамилия" HorizontalAlignment="Left" Margin="589,62,0,0" VerticalAlignment="Top"/>
<Label Content="Отчество" HorizontalAlignment="Left" Margin="589,93,0,0" VerticalAlignment="Top"/>
<Label Content="Номер телефона" HorizontalAlignment="Left" Margin="589,124,0,0" VerticalAlignment="Top"/>
<Label Content="День рождения" HorizontalAlignment="Left" Margin="589,153,0,0" VerticalAlignment="Top"/>
<Label Content="Email" HorizontalAlignment="Left" Margin="589,182,0,0" VerticalAlignment="Top" />
<TextBox HorizontalAlignment="Left" Height="23" Margin="680,34,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="188" x:Name="txtName" />
<TextBox HorizontalAlignment="Left" Height="26" Margin="680,62,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="188" x:Name="txtSurname"/>
<TextBox HorizontalAlignment="Left" Height="26" Margin="680,93,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="188" x:Name="txtFather"/>
<TextBox HorizontalAlignment="Left" Height="23" Margin="737,124,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="131" x:Name="txtNumPhone"/>
<TextBox HorizontalAlignment="Left" Height="24" Margin="737,153,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="131" x:Name="txtDateBirth"/>
<TextBox HorizontalAlignment="Left" Height="24" Margin="650,182,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="218" x:Name="txtMailPost"/>
<Calendar HorizontalAlignment="Left" Margin="697,257,0,0" VerticalAlignment="Top" Background="LightGray" BorderBrush="DimGray" x:Name="calendarForData" SelectedDatesChanged="calendar_Changed" Height="164" Width="171"/>
<Label Content="Пол" HorizontalAlignment="Left" Margin="589,211,0,0" VerticalAlignment="Top" />
<TextBox HorizontalAlignment="Left" Height="23" Margin="637,211,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="231" x:Name="txtSex"/>
<Button Content="Создать" HorizontalAlignment="Left" Margin="602,296,0,0" VerticalAlignment="Top" Width="75" Click="addDate_Click" Background="White"/>
<Button Content="Обновить" HorizontalAlignment="Left" Margin="602,320,0,0" VerticalAlignment="Top" Width="75" Click="btnUpdate_Click" Background="White"/>
<Button Content="Удалить" HorizontalAlignment="Left" Margin="602,368,0,0" VerticalAlignment="Top" Width="75" Click="btnDelete_Click" Background="White"/>
<Button Content="Изменить" HorizontalAlignment="Left" Margin="602,344,0,0" VerticalAlignment="Top" Width="75" Click="btnChanged_Click" Background="White"/>
<Label Content="№" HorizontalAlignment="Left" Margin="589,4,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.558,0.106"/>
<TextBox HorizontalAlignment="Left" Height="18" Margin="626,10,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="242" x:Name="txtPorydk"/>
<DataGrid HorizontalAlignment="Left" Height="438" Margin="10,4,0,0" VerticalAlignment="Top" Width="574" Name="gridForClint"/>
</Grid>
</Window>
Как исправить все эти сообщение? Можно ли скрыть эти сообщения?
Ответы (1 шт):
Это не ошибка, а информационное сообщение. Можете его игнорировать. Скорее всего, возникает из какого-то анализатора кода. Чтобы установить, добавьте DataContext = this в конструкторе формы в C# и пересоберите приложение.
Но лучше всего поизучайте, что такое привязка данных через Binding, там и узнаете про то, что такое DataContext, и с чем его едят.
Бонус
Ваша разметка, только без войны с марджинами. Разберитесь, что да как. Делать интерфейсы станет значительно проще. И да, здесь можно не фиксировать размер окна, а только задать ему MinWidth и MinHeight, размер таблицы будет меняться в зависимости от размера окна автоматически.
<Window.Triggers>
<EventTrigger RoutedEvent="Window.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
To="1" Duration="00:00:22" >
<DoubleAnimation.EasingFunction>
<BackEase EasingMode="EaseOut" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
<Window.Resources>
<Style TargetType="TextBox">
<Setter Property="Margin" Value="5"/>
<Style.Triggers>
<EventTrigger RoutedEvent="TextBox.MouseDoubleClick">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Background.Color"
To="DarkSeaGreen" AutoReverse="True" Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontFamily" Value="Verdana"/>
<Setter Property="FontWeight" Value="Black"/>
<Setter Property="Margin" Value="5"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="FontSize" Value="14" />
<Setter Property="Foreground" Value="OrangeRed" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="300"/>
</Grid.ColumnDefinitions>
<DataGrid Margin="5" Name="gridForClint"/>
<StackPanel Orientation="Vertical" Grid.Column="1" Margin="5">
<DockPanel>
<TextBlock Text="№"/>
<TextBox x:Name="txtPorydk"/>
</DockPanel>
<DockPanel>
<TextBlock Text="Имя"/>
<TextBox x:Name="txtName" />
</DockPanel>
<DockPanel>
<TextBlock Text="Фамилия"/>
<TextBox x:Name="txtSurname" />
</DockPanel>
<DockPanel>
<TextBlock Text="Отчество"/>
<TextBox x:Name="txtFather" />
</DockPanel>
<DockPanel>
<TextBlock Text="Номер телефона"/>
<TextBox x:Name="txtNumPhone" />
</DockPanel>
<DockPanel>
<TextBlock Text="День рождения"/>
<TextBox x:Name="txtDateBirth" />
</DockPanel>
<DockPanel>
<TextBlock Text="Email"/>
<TextBox x:Name="txtMailPost" />
</DockPanel>
<DockPanel>
<TextBlock Text="Пол"/>
<ComboBox x:Name="comboSex" Margin="5">
<ComboBoxItem>мужской</ComboBoxItem>
<ComboBoxItem>женский</ComboBoxItem>
</ComboBox>
</DockPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Calendar Grid.Column="1" Margin="5" Background="LightGray" BorderBrush="DimGray" x:Name="calendarForData" SelectedDatesChanged="calendar_Changed" Height="164" Width="171"/>
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
<StackPanel.Resources>
<Style TargetType="Button">
<Setter Property="Margin" Value="5,2"/>
<Setter Property="Width" Value="75"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="Background" Value="White"/>
</Style>
</StackPanel.Resources>
<Button Content="Создать" Click="addDate_Click"/>
<Button Content="Обновить" Click="btnUpdate_Click"/>
<Button Content="Удалить" Click="btnDelete_Click"/>
<Button Content="Изменить" Click="btnChanged_Click"/>
</StackPanel>
</Grid>
</StackPanel>
</Grid>
P.S. Не используйте Label в WPF, используйте TextBlock. Он легче и быстрее работает.