小编Jak*_*sen的帖子

F#中关键字"in"的含义

我刚开始学习F#.在几个F#编码示例中,我看到以下列方式使用关键字"in":

let doStuff x =
    let first, second = x in
    first + " " + second
Run Code Online (Sandbox Code Playgroud)

该功能在第二行的末尾使用和不使用"in"."in"有什么作用?

.net f#

36
推荐指数
3
解决办法
7336
查看次数

WPF MVVM:将不同的ViewModel绑定到每个TabItem?

我有一个主窗口,其中包含一个包含2 tabItem秒的选项卡控件:

主窗口

我目前有1个ViewModel服务Tab1和Tab2.ViewModel随着SOC模糊,这变得有点臃肿.我想将逻辑拆分为2个视图模型:ViewModel 1和ViewModel2.我的理解是您可以将主窗口设置DataContext为包含ViewModel集合的Base ViewModel,然后您可以将每个TabItem断言为不同的ViewModel.

我见过的这些基本ViewModel示例公开了一个ObservableCOllection,如下所示:

private ObservableCollection<ViewModel1> _viewModelCollection
Public Observable Collection<ViewModel1> ViewModelCollection
{
   get { return _viewModelCollection; }
   set
     {
        _viewModelCollection = value;
        OnPropertyChanged("ViewModelCollection");
     }
}

public BaseViewModel()
{
  ViewModelCollection = new ObservableCollection<ViewModel1>();
  ViewModelCollection.Add(new ViewModel1(Tab1);
  ViewModelCollection.Add(new ViewModel1(Tab2);
}
Run Code Online (Sandbox Code Playgroud)

但是如何为每个TabItem分配不同的ViewModel?我想要Tab1 = ViewModel1&Tab2 = ViewModel2?

c# wpf mvvm

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

在WPF中使用命令绑定时处理异常的最佳实践是什么?

我正在使用MVVM模式用于WPF应用程序.在几个地方,我将命令绑定到视图中的输入元素,如下面的XAML中所示:

<Button Command="{Binding TheClickCommand}" >Click</>
Run Code Online (Sandbox Code Playgroud)

处理在我的viewmodel中执行命令时抛出异常的最佳实践是什么 - 即通知视图出错的最佳方法是什么?我可以使用IDataErrorInfo模式还是有其他内置模式用于此方案?

wpf exception-handling mvvm

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

FlowDocument中缺少的图像保存为XPS文档

我在获取FlowDocument中包含的图像时遇到一些困难,以显示FlowDocument何时保存为XPS文档.

这是我做的:

  1. 使用WPF 的Image控件创建图像.我通过调用BeginInit/EndInit设置了括号的图像源.
  2. 将图像添加到FlowDocument中,将其包装在BlockUIContainer中.
  3. 使用此代码的修改版本将FlowDocument对象保存到XPS文件.

如果我然后在XPS查看器中查看保存的文件,则不显示图像.问题是,在WPF实际显示在屏幕上之前不会加载图像,因此它们不会保存到XPS文件中.因此,有一种解决方法:如果我首先使用FlowDocumentPageViewer在屏幕上显示文档,然后保存XPS文件,则会加载图像并显示在XPS文件中.即使隐藏了FlowDocumentPageViewer,这也可以工作.但这给了我另一个挑战.这是我想做的(在伪代码中):

void SaveDocument()
{
    AddFlowDocumentToFlowDocumentPageViewer();
    SaveFlowDocumentToXpsFile();
}
Run Code Online (Sandbox Code Playgroud)

这当然不起作用,因为在文档保存到XPS文件之前,FlowDocumentPageViewer永远不会有机会显示其内容.我尝试在调用Dispatcher.BeginInvoke时包装SaveFlowDocumentToXpsFile但它没有帮助.

我的问题是:

  1. 在保存XPS文件之前,我是否可以以某种方式强制图像加载而不实际在屏幕上显示文档?(我试着摆弄BitmapImage.CreateOptions而没有运气).
  2. 如果没有问题#1的解决方案,有没有办法告诉FlowDocumentPageViewer何时完成加载其内容,以便我知道何时保存以创建XPS文件?

wpf xpsdocument image flowdocument

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

在数组,列表等上使用foreach时的排序顺序

当使用foreach迭代数组时,是否有任何保证返回元素的顺序是order数组[0],array [1],array [2],...

我知道这是现在如何实现Array类,但是对于框架的未来版本是否有任何保证?List <>也有同样的问题.

.net arrays foreach

5
推荐指数
2
解决办法
4418
查看次数

两个ASP.NET站点共享应用程序文件但具有不同的web.config

是否可以使用虚拟目录和/或虚拟应用程序来设置两个共享相同应用程序代码(aspx页面等)但具有不同web.config文件的网站?站点和代码驻留在同一IIS上运行的同一服务器上.

我正在使用IIS 6.

asp.net iis-6 web-config

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

Microsoft ACE驱动程序更改程序其余部分的浮点精度

我遇到一个问题,在使用Microsoft ACE驱动程序打开Excel电子表格后,某些计算结果似乎发生了变化.

下面的代码重现了这个问题.

前两次调用DoCalculation产生相同的结果.然后我调用OpenSpreadSheet使用ACE驱动程序打开和关闭Excel 2003电子表格的函数.你不会期望OpenSpreadSheet对最后一次调用产生任何影响,DoCalculation但事实证明结果实际上发生了变化.这是程序生成的输出:

1,59142713593566
1,59142713593566
1,59142713593495
Run Code Online (Sandbox Code Playgroud)

请注意最后3位小数的差异.这似乎不是一个很大的区别,但在我们的生产代码中,计算是复杂的,并且产生的差异非常大.

如果我使用JET驱动程序而不是ACE驱动程序没有区别.如果我将类型从double更改为十进制,则错误消失.但这不是我们的生产代码中的一个选项.

我在Windows 7 64位上运行,程序集是为.NET 4.5 x86编译的.使用64位ACE驱动程序不是一个选项,因为我们运行的是32位Office.

有谁知道为什么会发生这种情况以及如何解决这个问题?

以下代码重现了我的问题:

static void Main(string[] args)
{
    DoCalculation();
    DoCalculation();
    OpenSpreadSheet();
    DoCalculation();
}

static void DoCalculation()
{
    // Multiply two randomly chosen number 10.000 times.
    var d1 = 1.0003123132;
    var d3 = 0.999734234;

    double res = 1;
    for (int i = 0; i < 10000; i++)
    {
        res *= d1 * d3;
    }
    Console.WriteLine(res);
}

public …
Run Code Online (Sandbox Code Playgroud)

.net floating-point excel jet

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

Web 插件在 Outlook for Windows 中失败,并显示:“Office.js 尚未完全加载”

我们创建了一个 Outlook Web 插件,它在 OWA 和 Outlook for Mac 中运行良好。但是,在 Outlook for Windows 上,插件仅显示空白页。

附加调试器时,我们收到 JavaScript 错误

Office.js 尚未完全加载。您的应用程序必须调用“Office.onReady() 作为其加载序列的一部分(或设置“Office.initialize”函数”)。

调试错误

这是 2016 年展望。

我们确实调用了Office.onReady,我们还尝试为 插入一个空体Office.initialize

我有一种感觉,IE 对我们使用的 JavaScript 不满意(也许是 Knockout.js?)。我们也尝试添加,<meta http-equiv="X-UA-Compatible" content="IE=edge">但都无济于事。

我怎样才能弄清楚出了什么问题?

outlook office-js outlook-web-addins

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

addObjectsFromArray 在 Swift 中不可用

我一直在寻找一种可以将我的数组合并到 Swift 中的一个数组中的方法。我有 2 个 NSMutableArrays,我想在新数组中添加数组内容。

示例:在 Objective C 中

NSMutableArray a = [1,2,3];
NSMutableArray b = [a,b,c];
NSMutableArray c = [NSMutableArray alloc]init];
[c addObjectsFromArray:a];
[c addObjectsFromArray:b]; 
// Output : c = [1,2,3,a,b,c]
Run Code Online (Sandbox Code Playgroud)

但在 Swift 中我遇到了一个问题。我尝试过“+”、“append”() 和 addObjects(from:) 但没有给出所需的答案。append(contentsOf:) 似乎不起作用。Xcode 建议删除“contentsOf:”。谁能给我一个小解决方案吗?请不要建议 for 循环。

arrays merge ios swift

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

运行目标[user's] iPhone无法运行该方案

在我的iPhone上成功运行应用程序很多次后,我一次又一次地收到此错误.有解决方案吗在此输入图像描述

xcode ios xcode9-beta

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