[英]Bind data to TextBox inside DataGridTextColumn.Header
我有一个ObservableCollection
:
public ObservableCollection<RepairInfo> RepairList { get; set; }
我将它绑定到DataGrid
:
<DataGrid SelectionMode="Single" ItemsSource="{Binding RepairList}" Name="RepairsGrid" AutoGenerateColumns="False">
我没有使用我的RepairInfo
类的所有属性,所以我指定了必须使用每个列的属性,如下所示:
<DataGridTextColumn Binding="{Binding IMEI}">
<DataGridTextColumn.Header>
<TextBox MinWidth="90" Text="{Binding IMEIFilter, UpdateSourceTrigger=PropertyChanged}" />
</DataGridTextColumn.Header>
</DataGridTextColumn>
DataGridTextColumn.Header
的TextBox
用于过滤数据。
所以这是我的问题 - 来自TextBox
值不会更新ViewModel
属性。 如果我把这个TextBox
放在DataGridTextColumn.Header
之外,一切都很好。 我猜它是由我的DataGridTextColumn
的Binding
属性引起的,但我不知道如何解决它。
海事组织。 . 更好的方法是在 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>
参考: WPF 数据网格标题文本绑定
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.