繁体   English   中英

将数据绑定到 DataGridTextColumn.Header 内的 TextBox

[英]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.HeaderTextBox用于过滤数据。

所以这是我的问题 - 来自TextBox值不会更新ViewModel属性。 如果我把这个TextBox放在DataGridTextColumn.Header之外,一切都很好。 我猜它是由我的DataGridTextColumnBinding属性引起的,但我不知道如何解决它。

海事组织。 . 更好的方法是在 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM