小编Max*_*ian的帖子

将枚举属性数据绑定到WPF中的ComboBox

作为示例,请使用以下代码:

public enum ExampleEnum { FooBar, BarFoo }

public class ExampleClass : INotifyPropertyChanged
{
    private ExampleEnum example;

    public ExampleEnum ExampleProperty 
    { get { return example; } { /* set and notify */; } }
}
Run Code Online (Sandbox Code Playgroud)

我想要将属性ExampleProperty数据绑定到ComboBox,以便它显示选项"FooBar"和"BarFoo"并在TwoWay模式下工作.最理想的是我希望我的ComboBox定义看起来像这样:

<ComboBox ItemsSource="What goes here?" SelectedItem="{Binding Path=ExampleProperty}" />
Run Code Online (Sandbox Code Playgroud)

目前我在我的Window中安装了ComboBox.SelectionChanged和ExampleClass.PropertyChanged事件的处理程序,我手动执行绑定.

是否有更好或某种规范的方式?您通常会使用转换器吗?如何使用正确的值填充ComboBox?我现在甚至不想开始使用i18n.

编辑

所以回答了一个问题:如何使用正确的值填充ComboBox.

通过静态Enum.GetValues方法中的ObjectDataProvider将Enum值作为字符串列表检索:

<Window.Resources>
    <ObjectDataProvider MethodName="GetValues"
        ObjectType="{x:Type sys:Enum}"
        x:Key="ExampleEnumValues">
        <ObjectDataProvider.MethodParameters>
            <x:Type TypeName="ExampleEnum" />
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

这个我可以用作我的ComboBox的ItemsSource:

<ComboBox ItemsSource="{Binding Source={StaticResource ExampleEnumValues}}"/>
Run Code Online (Sandbox Code Playgroud)

.net wpf

246
推荐指数
9
解决办法
17万
查看次数

如何找出上次更新Oracle表的时间

我可以找出在Oracle数据库中的表上执行最后一次INSERT,UPDATE或DELETE语句的时间,如果是,如何执行?

一点背景:Oracle版本为10g.我有一个定期运行的批处理应用程序,从单个Oracle表中读取数据并将其写入文件.如果自上次作业运行以来数据没有发生变化,我想跳过此步骤.

该应用程序是用C++编写的,并通过OCI与Oracle通信.它使用"普通"用户登录Oracle,因此我无法使用任何特殊的管理员资源.

编辑:好的,"Special Admin Stuff"并不是一个很好的描述.我的意思是:除了从表中选择和调用存储过程之外,我什么也做不了.如果想在2010年之前完成任务,那么改变数据库本身的任何内容(比如添加触发器)都是不可思议的选择.

oracle oracle-call-interface

24
推荐指数
7
解决办法
21万
查看次数

如何在鼠标悬停时突出显示部分图像映射?

我需要显示一个包含大约70个区域的图像映射.鼠标光标当前所在的图像映射区域应该以某种颜色突出显示.

这是可能的,如果可以,怎么样?

html javascript imagemap

14
推荐指数
3
解决办法
6万
查看次数

在向量上使用基于范围的循环时,CppCoreChecker C-Style强制警告

假设以下代码:

#include <iostream>
#include <vector>
#include <string>

int main() {
    std::vector<std::string> lines;
    lines.push_back("line");
    for (const auto& s : lines) {
        std::cout << s;
    }
}
Run Code Online (Sandbox Code Playgroud)

在for循环的行中,我收到以下警告:

C26493不要使用执行static_cast downcast,const_cast或reinterpret_cast的C样式转换.

有人可以解释这是从哪里来的吗?我使用Visual Studio 2017 Community Edition版本15.2.

c++ static-analysis c++11 cpp-core-guidelines

7
推荐指数
1
解决办法
288
查看次数

我应该使用哪种JDBC驱动程序类型来访问Oracle数据库?

我们在AIX上的Tomcat WebServer中运行J2EE应用程序.

我们需要访问Oracle数据库的一些视图和存储过程.这个oracle数据库不是我们的应用程序所基于的,而是我们必须与之通信的外部系统.

据我所知,我们将在高负载和每小时一些存储过程调用(如果有)的情况下每分钟获得大约1000个SELECT.

在这种情况下哪种JDBC驱动程序类型最适合使用?

据我所知,类型4似乎是要走的路,但我无法通过Oracle或其他可靠的来源找到关于此的明确说明.

oracle jdbc java-ee

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

如何使Pro * C适应#warning指令?

当我尝试预编译包含#warning指令的* .pc文件时,出现以下错误:

PCC-S-02014,在预期以下情况之一时遇到符号“警告”:(bla bla bla)。

如果Pro * C不知道如何处理,我可以说服他们忽略它吗?我无法删除该#warning指令,因为它在无法更改且必须包含的头文件中使用。

c oracle oracle-pro-c

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