datagrid标头中控件的绑定属性问题

时间:2011-07-03 13:01:58

标签: wpf datagrid binding header caliburn

.NET 4,Caliburn Micro。我需要将textBox,comoboBox和一些其他控件添加到datagrid头文件,并在这些控件上绑定视图模型类的属性。

所以我尝试使用HeaderTemplate:

XAML:

<DataGrid ItemsSource="{Binding Calls}"
              AutoGenerateColumns="False">
    <DataGrid.Columns>

        <DataGridTextColumn  IsReadOnly="True"
                             CellStyle="{StaticResource CellStyle}"
                             Binding="{Binding Path=Number}">

            <DataGridTextColumn.HeaderTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="Cell phone No"/>
                        <TextBox Width="120" 
                                 FontSize="14" 
                                 VerticalAlignment="Center"
                                 BorderThickness="1"
                                 Text="{Binding Path=NumberFilterValue,
                                                Mode=OneWayToSource,
                                                UpdateSourceTrigger=PropertyChanged}"/>
                    </StackPanel>
                </DataTemplate>
            </DataGridTextColumn.HeaderTemplate>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

在标题中我有textBox控件,我从视图模型类中尝试绑定属性NumberFilterValue。

查看模型类:

    public string NumberFilterValue
    {
        get { return _numberFilterValue; }
        set
        {
            _numberFilterValue = value;
            NotifyOfPropertyChange(() => NumberFilterValue);
            FilterCalls();
        }
    }

问题是这种绑定不起作用。属性NumberFilterValue仍为空。

这个问题的根源是什么,如何解决?谢谢合作。

1 个答案:

答案 0 :(得分:0)

如果你确定你的意思是OneWayToSource而不是OneWay,你应该读到这个: OneWayToSource Binding seems broken in .NET 4.0