相关疑难解决方法(0)

在WPF中强制绑定

我正在编写测试,它将检查BindingXAML中指定的元素的正确性.它们到目前为止工作,唯一的问题是我不知道如何正确地强制数据绑定发生.令人惊讶的是,仅仅设置内容是不够的,在DataContext显示控件/窗口之前不会发生绑定.请注意,我正在编写'单元'测试,我想避免显示任何窗口.

看看下面的代码:

// This is main class in console application where I have all WPF references added
public class Program
{
    [STAThread]
    public static void Main()
    {
        var view = new Window();
        BindingOperations.SetBinding(view, Window.TitleProperty, new Binding("Length"));
        view.DataContext = new int[5];
        //view.Show(); view.Close(); // <-- this is the code I'm trying not to write
        Console.WriteLine(view.Title);
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我正在创建一个Window并DataContext为该窗口放置一个数组.我绑定Window.TitleArray.Length所以我希望5在控制台中看到数字.但是直到我Show窗口(注释行)我才会得到空字符串.如果我取消注释该行,那么我将5在控制台输出中收到所需的内容.

有没有办法在不显示窗口的情况下进行绑定?在启动测试时查看~20个窗口非常烦人.

PS:我知道我可以让窗户更透明等等,但我正在寻找更优雅的解决方案.

UPDATE上面的代码是我真正拥有的简化版本.在实际代码中,我收到View一些(有些UIElement …

data-binding wpf unit-testing

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

标签 统计

data-binding ×1

unit-testing ×1

wpf ×1