gpt4 book ai didi

c# - 在数据网格中搜索

转载 作者:行者123 更新时间:2023-12-03 10:59:36 25 4
gpt4 key购买 nike

我有一个文本框,输入的内容必须在数据网格中进行搜索。

为了清楚起见,请在链接中添加图片。
https://www.dropbox.com/s/8s98bes1g54xjaz/Search.png

我使用 MVVM 模型。

XAML:
Textbox:

<TextBox x:Name="txtZoeken" HorizontalAlignment="Center" VerticalAlignment="Center" Height="29" Grid.Row="0" TextWrapping="Wrap" Width="238" FontSize="20" Text="Zoeken..."/>

Datagrid:
<DataGrid ItemsSource="{Binding Contactpersons}" AutoGenerateColumns="False" x:Name="PersonenGrid" Grid.Column="1" Margin="35,99,8,10" Grid.Row="5" Grid.ColumnSpan="3">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cmd:EventToCommand Command="{Binding EditCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Columns >
<DataGridTextColumn Header="ID" Binding="{Binding ID}"/>
<DataGridTextColumn Header="Naam" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Bedrijf" Binding="{Binding Company}" />
<DataGridTextColumn Header="Functie" IsReadOnly="True" Binding="{Binding JobRole/Name}"/>
<DataGridTextColumn Header="Stad" Binding="{Binding City}" />
<DataGridTextColumn Header="E-mail" Binding="{Binding Email}" />
<DataGridTextColumn Header="Telefoon" Binding="{Binding Phone}" />
<DataGridTextColumn Header="GSM" Binding="{Binding Cellphone}" />
</DataGrid.Columns>
</DataGrid>

最佳答案

您可以在 ViewModel 中创建一个名为 SelectedPerson 的附加属性

        private Person_selectedperson;

public Person SelectedPerson
{
get { return _selectedperson; }
set
{
_selectedperson = value;
OnPropertyChanged("SelectedPerson");
}
}

此属性应代表 Contactpersons 集合中的一个实例。然后,将此属性绑定(bind)到数据网格中的 SelectedItem
<DataGrid ItemsSource="{Binding Contactpersons}" SelectedItem="{Binding SelectedPerson}"

然后在与文本框搜索按钮相关的事件/方法中。运行 linq 查询或类似的东西以在集合中找到第一个匹配项并将 SelectedPerson 设置为该项目(我在快速编写代码时在搜索单击事件中完成了它,但是,您可能希望将命令放在 viewmodel 中以更好地遵守到 mvvm)...
        private void Button_Click_1(object sender, RoutedEventArgs e)
{
string searchValue = textbox1.Text;
vm.SelectedPerson = vm.Contactpersons.Where(a => a.LastName.Contains(searchValue)).FirstOrDefault();
}

除了此示例之外,还需要额外的错误处理(检查是否没有匹配项等)

关于c# - 在数据网格中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20314062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com