相关疑难解决方法(0)

检测WPF验证错误

在WPF中,您可以使用ExceptionValidationRule或在数据绑定期间根据数据层中抛出的错误设置验证DataErrorValidationRule.

假设你有一堆这样设置的控件,你有一个Save按钮.当用户单击"保存"按钮时,您需要确保在继续保存之前没有验证错误.如果存在验证错误,您希望对它们大声疾呼.

在WPF中,如何确定是否有任何数据绑定控件设置了验证错误?

data-binding validation wpf

114
推荐指数
5
解决办法
6万
查看次数

WPF:具有焦点的文本框的更改直到Closing事件触发后才会提交

我有一个用于编辑数据库信息的WPF窗口,它使用Entity Framework对象表示.当用户关闭窗口时,我想在Closing事件中注意信息是否已更改并显示一个消息框,用于将更改保存到数据库.

不幸的是,在编辑失去焦点之前,对当前焦点编辑的更改不会分配给绑定源,这会在处理Closing事件之后的某个时刻发生.

理想情况下,在检查我的实体是否已被修改之前,会有一个例程提交我可以调用的视图层次结构中的所有更改.我也在寻找有关以焦点方式清除控件焦点的信息,但无法弄清楚如何去做.

我的问题是,这通常是如何处理的?

data-binding wpf

13
推荐指数
3
解决办法
1万
查看次数

WPF:数据绑定TabControl在选择新选项卡时不提交更改

我有一个TabControl,其中每个Tab及其内容都数据绑定到ObservableCollection:

<TabControl ItemsSource="{Binding Path=.}">
    <TabControl.ContentTemplate>
        <DataTemplate>
            <TextBox Text="{Binding Path=propertyValue}" />
        </DataTemplate>
    </TabControl>
</TabControl>
Run Code Online (Sandbox Code Playgroud)

如果我单击选项卡1,然后在文本框中键入内容并单击选项卡以使TextBox失去焦点,我键入文本框的新数据将提交给ObservableCollection项.

但是,如果我在TestBox中键入数据然后立即单击另一个选项卡,则永远不会提交数据.另外,当我回到数据时,它不再设置为我输入的内容.

任何人都知道在更改当前选项卡之前强制提交数据的方法吗?

更新和修复

我做了什么是连接SelectionChanged事件:

private void tabData_SelectionChanged(object sender, SelectionChangedEventArgs e) {
    theTabControl.Focus();         
}
Run Code Online (Sandbox Code Playgroud)

在TabControl上调用Focus()会使TextBox失去焦点并提交数据.我这样做是因为我有其他控件 - 比如DatePicker - 它们表现出类似的行为.这是一个很好的选择.

wpf c#-4.0

12
推荐指数
1
解决办法
3319
查看次数

使用UpdateSourceTrigger绑定== LostFocus不会触发菜单或工具栏交互

我注意到UpdateSourceTrigger==LostFocus当用户激活菜单或工具栏时,绑定不会更新.

这导致了一种不幸的情况,即当用户从菜单或工具栏中选择"保存文件"时,用户所做的最后一次更改会丢失.

有没有一个简单的方法或我必须更改我的所有绑定UpdateSourceTrigger=PropertyChanged.

data-binding wpf

8
推荐指数
2
解决办法
7165
查看次数

单击按钮时如何强制LostFocus

XAML C#不是WEB页面是一个Window

点击一下按钮我:

  1. 需要捕获最后一个控件的名称 OnFocus
  2. 强制LostFocus控制事件.

xaml

5
推荐指数
1
解决办法
3105
查看次数

标签 统计

wpf ×4

data-binding ×3

c#-4.0 ×1

validation ×1

xaml ×1