1

.NET 4、カリバーン マイクロ。textBox、comoboBox、およびその他のコントロールをデータグリッド ヘッダーに追加し、これらのコントロールのビュー モデル クラスからプロパティをバインドする必要があります。

だから私は 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 はまだ空です。

この問題の根本は何ですか?どうすれば解決できますか? 協力ありがとうございました。

4

1 に答える 1

0

OneWayではなくOneWayToSourceを意味していると確信している場合は、次のように読む必要があります 。OneWayToSourceバインディングは.NET4.0で壊れているようです。

于 2011-07-05T13:01:29.087 に答える