[英]Bind data to TextBox inside DataGridTextColumn.Header
I have an ObservableCollection
:我有一个ObservableCollection
:
public ObservableCollection<RepairInfo> RepairList { get; set; }
And I'm binding it to a DataGrid
:我将它绑定到DataGrid
:
<DataGrid SelectionMode="Single" ItemsSource="{Binding RepairList}" Name="RepairsGrid" AutoGenerateColumns="False">
I don't use all properties of my RepairInfo
class so I specify which property have to use each columns, like this:我没有使用我的RepairInfo
类的所有属性,所以我指定了必须使用每个列的属性,如下所示:
<DataGridTextColumn Binding="{Binding IMEI}">
<DataGridTextColumn.Header>
<TextBox MinWidth="90" Text="{Binding IMEIFilter, UpdateSourceTrigger=PropertyChanged}" />
</DataGridTextColumn.Header>
</DataGridTextColumn>
The TextBox
inside DataGridTextColumn.Header
using for filtering data. DataGridTextColumn.Header
的TextBox
用于过滤数据。
So here is my problem - value from TextBox
don't update property in ViewModel
.所以这是我的问题 - 来自TextBox
值不会更新ViewModel
属性。 If I put this TextBox
outside DataGridTextColumn.Header
everything is fine.如果我把这个TextBox
放在DataGridTextColumn.Header
之外,一切都很好。 I guess it causes by Binding
property of my DataGridTextColumn
but I don't know how to resolve it.我猜它是由我的DataGridTextColumn
的Binding
属性引起的,但我不知道如何解决它。
IMO.海事组织。 . . better way would be having the property for the Header
inside the MainWindow Viewmodel and you can Bind
it like this更好的方法是在 MainWindow Viewmodel 中拥有Header
的属性,您可以像这样Bind
它
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding IMEI}">
<DataGridTextColumn.Header>
<TextBox MinWidth="90" Text="{Binding DataContext.IMEIFilter,
RelativeSource={RelativeSource AncestorType={x:Type local:MainWindow}}}"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
Reference: WPF datagrid header text binding参考: WPF 数据网格标题文本绑定
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.