小编Ser*_*nov的帖子

WPF 用户控件和名称范围

我一直在玩 WPF 和 MVVM 并注意到一件奇怪的事情。在{Binding ElementName=...}自定义用户控件上使用时,用户控件中根元素的名称似乎在使用该控件的窗口中可见。说,这是一个示例用户控件:

<UserControl x:Class="TryWPF.EmployeeControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:TryWPF"
             Name="root">
  <Grid>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="*" />
      <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="0" Text="{Binding}"/>
    <Button Grid.Column="1" Content="Delete"
                Command="{Binding DeleteEmployee, ElementName=root}"
                CommandParameter="{Binding}"/>
  </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

对我来说看起来很合法。现在,依赖属性DeleteEmployee在代码隐藏中定义,如下所示:

public partial class EmployeeControl : UserControl
{
    public static DependencyProperty DeleteEmployeeProperty
        = DependencyProperty.Register("DeleteEmployee",
                                      typeof(ICommand),
                                      typeof(EmployeeControl));

    public EmployeeControl()
    {
        InitializeComponent();
    }

    public ICommand DeleteEmployee
    {
        get
        {
            return (ICommand)GetValue(DeleteEmployeeProperty);
        }
        set
        {
            SetValue(DeleteEmployeeProperty, value);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里没有什么神秘的。然后,使用控件的窗口如下所示:

<Window x:Class="TryWPF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:TryWPF" …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml scope mvvm

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

何时类型惩罚指针在实践中是安全的?

我的一位同事正在研究与二进制数据阵列一起使用的C++代码.在某些地方,他的代码就像

char *bytes = ...
T *p = (T*) bytes;
T v = p[i]; // UB
Run Code Online (Sandbox Code Playgroud)

在这里,T有时可以short或int(分别假设16位和32位).

现在,与我的同事不同,我属于"没有UB,如果可能的话"阵营,而他更像是"如果它有效,那就没关系".我正在努力试图说服他.

鉴于:

  1. bytes 真的来自这个编译单元之外的某个地方,从一些二进制文件中读取.

  2. 可以安全地假设数组实际上包含本机字节序中的整数.

在实践中,鉴于MSVC 2017和gcc 4.8等主流C++编译器以及Intel x64硬件,这样的事情真的很安全吗?我知道它不会T是,比如说,float(过去曾被它咬过).

c++ strict-aliasing undefined-behavior

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

JavaFX FileChooser在摇摆

我想每个人都同意JFileChooser真的是大便.所以我一直在寻找替代方案,并发现JavaFX有一个很棒的FileChooser类.所以现在显而易见的问题是:如何将整齐的FileChooser嵌入我的Swing应用程序中?

不用说,在我发布之前我做了一些研究,这是我到目前为止所发现的:链接到Reddit帖子.

该JavaFXFileDialog类的代码非常有趣,但是当我退出应用程序时它不会关闭(JavaFX似乎继续在后台运行).另外,我错过了一些我可以传递给FileChooser的字段,就像设置默认目录的路径一样.而且我不喜欢它是如何静止的.

我很感激任何意见.

swing javafx

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

java.lang.Math-是"在1 ULP内"的独家或包容性?

java.lang.Mathdocs说许多功能,例如Math.pow:

计算结果必须在精确结果的1 ulp范围内.

但我无法确切地找到这意味着什么.它是独家的还是包容性的?换句话说,如果确切的结果可以用double表示,那么返回的值是否包含精确的结果,或者它仍然可以被1 ULP关闭?

例如,我们可以依靠Math.pow(3.0, 2.0) == 9.0吗?我知道使用平等比较对双打来说几乎总是一个坏主意,所以我主要是出于好奇,并且当他们做那样的事情时能够指出人们犯错误(或让他们安心).

java floating-point precision floating-accuracy

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

来自appSettings的流畅的NHibernate

我想从app.config和appSettingKey配置我的NHibernate Fluent.

是否有人可以解释app.config文件应该如何?

MsSqlConfiguration.MsSql2005  
   .ConnectionString(c => c  
    .FromAppSetting("appSettingKey")); 
Run Code Online (Sandbox Code Playgroud)

这是我的connectionsString

Data Source=(local);Initial Catalog=ABC;Integrated Security=True
Run Code Online (Sandbox Code Playgroud)

这不起作用:

<appSettingKey>"Data Source=.;Initial Catalog=ABC;Integrated Security=True"</appSettingKey>
Run Code Online (Sandbox Code Playgroud)

// Mats,斯德哥尔摩,瑞典

fluent-nhibernate

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

从另一个类调用一个扩展Thread的类的方法

我知道这是一个有点天真的问题,但我想了解java中多线程背后的基本工作原理.考虑以下代码,并说A在主线程中执行,它开始执行另一个工作线程,在B类中定义.我想知道可以从A调用B.func1并运行B的方法,并行执行或不执行?

public class A {
    public static void main(String[] args) {
        B obj = new B();
        obj.start();
        obj.func1();
    }
}

public class B extends Thread {
    public B() {
        //constructor
    }
    public void run() {
        while(true) {
            //do somethings
        }
    }
    public void func1() {
        //do someotherthings
    }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading

2
推荐指数
1
解决办法
2219
查看次数

如何遍历char**指针?

我有以下代码

struct my_struct {
    const char **enjoy;
};

const char * enjy[] = {
    "Cricket", "movie", "",
    "Ball", "eat", "",
    };

static const struct my_struct my_struct_table[1] = {
    [0] = {
        .enjoy = enjy
        }
};
Run Code Online (Sandbox Code Playgroud)

现在我想使用那个最终结构,并希望使用它进行迭代.我该如何迭代使用my_struct_table[0].enjoy

我想打印enjy变量中的所有字符串.

c pointers loops

2
推荐指数
1
解决办法
8332
查看次数

C++,在QTableWidget中添加/删除行

我正在创建一个带有表格和"添加行"按钮的简单应用程序.使用Qt Creator我以为我可以这样做:

QObject::connect(ui->addRowButton, SIGNAL(clicked()),
                     ui->moneyTableWidget, SLOT(insertRow(1)));
Run Code Online (Sandbox Code Playgroud)

但我不能.我对Qt很新,我可能错了,但认为问题是insertRow不是QTableWidget的SLOT方法...

如何实现行插入?

c++ qt4 qtablewidget

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