天天看点

WPF DataGrid中的TextBox双向绑定失败

一开始没写UpdateSourceTrigger=LostFocus,双向绑定一直失败。UpdateSourceTrigger属性取UpdateSourceTrigger枚举的值之一。默认值为Default,该值返回目标依赖属性的默认UpdateSourceTrigger值。但是,对于大多数依赖属性来说,默认值为PropertyChanged,而Text属性应取LostFocus。

xaml代码

<DataGridTemplateColumn Header="操作" Width="240*" MinWidth="240" CellStyle="{StaticResource cellCenterStyle}">

                            <DataGridTemplateColumn.CellTemplate>

                                <DataTemplate>

                                    <TextBox x:Name="txtResult" Text="{Binding Path=InspectValue, Mode=TwoWay,UpdateSourceTrigger=LostFocus}" Style="{StaticResource InputTextBox}" MaxLength="255">

                                    </TextBox>

                                </DataTemplate>

                            </DataGridTemplateColumn.CellTemplate>

                            <DataGridTemplateColumn.CellEditingTemplate>

                                <DataTemplate>

                                    <TextBox x:Name="txtResult" Text="{Binding Path=InspectValue, Mode=TwoWay,UpdateSourceTrigger=LostFocus}" Style="{StaticResource InputTextBox}" MaxLength="255">

                                    </TextBox>

                                </DataTemplate>

                            </DataGridTemplateColumn.CellEditingTemplate>

</DataGridTemplateColumn>

model代码:

        // 结果值

        private string _inspectValue;

        /// <summary>

        /// 输入的结果

        /// </summary>

        public string InspectValue

        {

            get => _inspectValue;

            set

            {

                _inspectValue = value;

                // 双向绑定

                RaisePropertyChanged("InspectValue");

            }

        }

感谢:https://www.e-learn.cn/content/qita/2755265