@FAwafawf1212

Как исключить строку в datagrid?

Как исключить строку из выдачи datagrid?
У меня есть datagrid, где пользователь двойным щелчком мыши выбирает строку из открывшегося окна, после чего окно закрывается, а его выбор засчитывается. Он из списка принтеров выбирает какой-то один. но проблема в том, что пользователь может выбрать несколько раз один и тот же, поэтому я хочу, чтоб если в моей таблице ( где содержатся уже выбранные принтеры), были совпадения с теми, которые есть в полном объёме ( таблица, где они все представлены). То из поиска должны убираться эти строки. Несколько дней провел и примерно накидал, как может по моей логике быть, но я многого ещё не могу найти.
Как думаю:
1) Прогружается метод во время загрузки окна, где пользователь будет выбирать строку.
2) Две переменные в этом методе, первая - отвечает за все принтеры, а вторая -за выбранные, я их объявляю
3) идет сравнение и если во всех принтерах, я нахожу совпадения, то я убираю эти принтеры из конечного результа
4) вывожу данные в datagrid
вот код C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace YchetApparatov
{
  public partial class PrinterListWindow : Window
    {

        public static int SelectPrinterInt;
        public PrinterListWindow()
        {
            InitializeComponent();
            SelectPrinterInt = 0;
        }

 private void DGPrinterViev_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
  var printertable = NormApparatYchetEntities2.GetContext().PrinterTable.ToList(); // в printertable все принтеры которые есть
            var naborinprinter = NormApparatYchetEntities2.GetContext().ComplectTable.ToList(); // в ComplectTable содержатся все принтеры, которые были использованы и которые я не -хочу видеть в datagrid
            var currentItemNabor = (ComplectTable)((FrameworkElement)sender).DataContext;           
            var currentItem = (PrinterTable)((FrameworkElement)sender).DataContext;
            if (currentItem.IdPrinter == currentItemNabor.IdPrinterInComplect )
            {

            }
            SelectPrinterInt = currentItem.IdPrinter;
            this.Close();
        }
    }  
}


вот XAML

<Window x:Class="YchetApparatov.PrinterListWindow"
        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:YchetApparatov"
        mc:Ignorable="d"
        Title="PrinterListWindow" Height="720" Width="1280">
    <Grid Margin="0,97,0,34">
        <Grid.RowDefinitions>
        </Grid.RowDefinitions>
        <DataGrid x:Name="DGPrinterViev" AutoGenerateColumns="False" IsReadOnly="True" Margin="0,-3,0,126"
              ItemsSource="{Binding Source}" SelectedItem="{Binding SelectedRow}" >
            <DataGrid.ItemContainerStyle>
                <Style TargetType="DataGridRow">
                    <EventSetter Event="MouseDoubleClick" Handler="DGPrinterViev_MouseDoubleClick"/>
                </Style>
            </DataGrid.ItemContainerStyle>
            <DataGrid.Columns>
                <DataGridTextColumn Header="Модель принтера" Binding="{Binding ModelPrinter}" ></DataGridTextColumn>
                <DataGridTextColumn Header="Цвтеной или ЧБ" Binding="{Binding ColorOrBW}" ></DataGridTextColumn>
                <DataGridTextColumn Header="Скорость печати в минуту" Binding="{Binding SkorostPechati}" ></DataGridTextColumn>
                <DataGridTextColumn Header="Инвентарный номер принтера" Binding="{Binding InventarNomerPrinter}" ></DataGridTextColumn>
                <DataGridTextColumn Header="Серийный номер принтера" Binding="{Binding SeriyNomerPrinter}" ></DataGridTextColumn>
                <DataGridTextColumn Header="Дата прихода принтера" Binding="{Binding DataPrihodaPrinter}" ></DataGridTextColumn>
                <DataGridTextColumn Header="Дата списания принтера" Binding="{Binding DataSpisanPrinter}" ></DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>
        <Button Content="Очистить" HorizontalAlignment="Left" Margin="0,-30,0,0" VerticalAlignment="Top" Width="75"/>
        <TextBox HorizontalAlignment="Left" Height="22" Margin="88,-30,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="165"/>
        <Label Content="Фильтр" HorizontalAlignment="Left" Margin="0,-55,0,0" VerticalAlignment="Top" Height="25" Width="63"/>
        <Label Content="Поиск" HorizontalAlignment="Left" Margin="88,-55,0,0" VerticalAlignment="Top" Height="25" Width="63"/>

    </Grid>
</Window>
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы