вот мой «проект»:DataGridView XElement фильтрация через Textbox текст
То, что я пытаюсь сделать, это загрузить данные из внешнего файла .xml в DataGrid:
XElement Persons = XElement.Load(@"d:\persons.xml");
dataGrid1.DataContext = Persons;
Он работает нормально, но вот проблема, которую я не могу понять: в верхней части DataGrid вы можете видеть TextBox, поэтому мне нужно использовать textBox1.text в качестве фильтра данных для DataGrid. Предположим, что если пользователь вводит букву «a», в DataGriw мы должны видеть только 2 строки с именем pAul и row со страной russiA, заставляя обе строки содержать букву «a» в своих данных. Если вы также поможете мне включить и исключить некоторые аббревиатуры столбцов для поиска, это будет просто великолепно. И, наконец, если пользователь нажимает на строку, которую он нашел, используя кнопку поиска - данные от продаж должны быть помещены на этикетки справа. Я также был бы рад узнать, как загружать данные из выбранной строки, которая на самом деле не отображается в DataGrid. Скажем, если в XML-файле у нас есть данные о зарплате, но мы не показываем его в DataGrid, и нам нужно, чтобы он был загружен на четвертый ярлык, когда пользователь делает выбор строки. Вот моя XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="679" Width="1137">
<Grid Height="645" Name="grid1" Width="1119">
<DataGrid Height="300" ItemsSource="{Binding Path=Elements[person]}" Margin="26,42,839,297" Name="dataGrid1" Width="250">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Element[name].Value}" Header="Name" />
<DataGridTextColumn Binding="{Binding Path=Element[country].Value}" Header="Country" />
<DataGridTextColumn Binding="{Binding Path=Element[age].Value}" Header="Age" />
</DataGrid.Columns>
</DataGrid>
<TextBox Height="24" HorizontalAlignment="Left" Margin="26,12,0,0" Name="textBox1" VerticalAlignment="Top" Width="250" />
<Label Content="Name goes here on row select" Height="28" HorizontalAlignment="Left" Margin="307,28,0,0" Name="label1" VerticalAlignment="Top" Width="188" />
<Label Content="Country goes here on row select" Height="28" HorizontalAlignment="Left" Margin="307,72,0,0" Name="label2" VerticalAlignment="Top" Width="188" />
<Label Content="Age goes here on row select" Height="28" HorizontalAlignment="Left" Margin="307,120,0,0" Name="label3" VerticalAlignment="Top" Width="188" />
</Grid>
Пожалуйста, поговорите со мной, как для абсолютного новичка, потому что это трудно для меня, чтобы понять, когда вы используете что-то дополнительное смарт. Шаг за шагом высоко ценится. Спасибо ...
Непонятно, что вы просите. Вы спрашиваете о поиске XML с LINQ to XML? Или вы спрашиваете о некотором коде для обновления пользовательского интерфейса? –
Я спрашиваю о том, как фильтровать результаты в datagrid с помощью текстового поля. В Windows Forms я использовал фильтр набора данных, но здесь я понятия не имею, как это сделать. – Mike