相关疑难解决方法(0)

保存之前的WPF Databind

在我的WPF应用程序中,我有许多数据绑定TextBoxes.在UpdateSourceTrigger这些绑定的LostFocus.使用"文件"菜单保存对象.我遇到的问题是可以在TextBox中输入一个新值,从File菜单中选择Save,并且永远不会保留新值(TextBox中可见的值)因为访问菜单不会从TextBox中删除焦点.我怎样才能解决这个问题?有没有办法强制页面中的所有控件数据绑定?

@palehorse:好点.不幸的是,我需要使用LostFocus作为我的UpdateSourceTrigger,以支持我想要的验证类型.

@dmo:我想到了这一点.然而,对于一个相对简单的问题,它似乎是一个非常不优雅的解决方案.此外,它要求页面上有一些控件,它始终可见以接收焦点.然而,我的应用程序是标签,因此没有这样的控件容易出现.

@Nidonocu:使用菜单没有从TextBox移动焦点的事实也使我感到困惑.然而,这就是我所看到的行为.以下简单示例演示了我的问题:

<Window x:Class="WpfApplication2.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Window.Resources>
        <ObjectDataProvider x:Key="MyItemProvider" />
    </Window.Resources>
    <DockPanel LastChildFill="True">
        <Menu DockPanel.Dock="Top">
            <MenuItem Header="File">
                <MenuItem Header="Save" Click="MenuItem_Click" />
            </MenuItem>
        </Menu>
        <StackPanel DataContext="{Binding Source={StaticResource MyItemProvider}}">
            <Label Content="Enter some text and then File > Save:" />
            <TextBox Text="{Binding ValueA}" />
            <TextBox Text="{Binding ValueB}" />
        </StackPanel>
    </DockPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
using System;
using System.Text;
using System.Windows;
using System.Windows.Data;

namespace WpfApplication2
{
    public partial class Window1 : Window
    {
        public MyItem Item
        {
            get …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf

37
推荐指数
4
解决办法
1万
查看次数

标签 统计

data-binding ×1

wpf ×1