我按照以下链接的建议(从文本框中过滤wpf datagrid值)创建了图A。当我按下按钮时,它允许我根据文本框中的内容过滤DataGrid。
然而,一旦我将按钮和文本框移动到DataGrid的列标题中,就像在图B中一样。按钮仍然有效,但是文本框的绑定却没有作用,因为它在代码中显示为空。
任何关于这个的帮助都将不胜感激!我已经在思考这个问题一整天了!
(我本来想在另一个帖子上寻求一些建议,但是我没有看到任何选项!)
然而,一旦我将按钮和文本框移动到DataGrid的列标题中,就像在图B中一样。按钮仍然有效,但是文本框的绑定却没有作用,因为它在代码中显示为空。
http://i42.tinypic.com/2quivpx.png
在链接中所做的唯一真正变化的是我的XAML,我将我的TextBox和Button放在了DataGridTemplateColumn Header中。<Grid DataContext="{Binding ElementName=UI}" >
<DataGrid AutoGenerateColumns="False" Height="184" HorizontalAlignment="Left" Margin="12,23,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="384" ItemsSource="{Binding DataGridCollection}">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBox Name="IDSearcBox" Text="{Binding FilterString}" Width="100"/>
<Button Name="IDSearchButton" Click="IDButton_Click" Content="I" Width="30"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding ID}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn>
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBox Name="NameSearchBox" Text="{Binding FilterString}" Width="100"/>
<Button Name="NameSearchButton" Click="NameSearchButton_Click" Content="N" Width="30"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="SomethingElse" Binding="{Binding SomethingElse}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
任何关于这个的帮助都将不胜感激!我已经在思考这个问题一整天了!
(我本来想在另一个帖子上寻求一些建议,但是我没有看到任何选项!)