小编Sam*_*Sam的帖子

大型WCF服务的最佳实践?

编写一个包含大量OperationContracts和DataContracts的大型wcf服务的最佳实践是什么?

我如何将功能区域分成几个合同,最好是为每个功能区域创建一个端点?

有没有办法让不同部分的来源分开,但仍然只为所有部分使用一种服务?

我在哪里可以获得有关如何规划合同,包括哪些内容,如何拆分......的良好信息?

wcf

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

TextBox和默认Button绑定确实更新太晚了

我有一个带有这两个控件的简单WPF对话框:

<TextBox Text="{Binding MyText}"/>
<Button Command="{Binding MyCommand}" IsDefault="True"/>
Run Code Online (Sandbox Code Playgroud)

现在,当我在TextBox中输入一些文本并使用鼠标单击按钮时,一切都按预期工作:TextBox将设置MyText并调用MyCommand.

但是,当我输入一些文本并按Enter键以"单击"默认按钮时,它不起作用.因为在点击进入焦点时不会离开TextBox,绑定将不会刷新MyText.因此,当调用MyCommand(其工作)时,MyText将包含旧数据.

我如何在MVVM中修复此问题?在经典的代码隐藏中,我可能只是在MyCommand处理程序中调用"MyButton.Focus()",但在MVVM中,MyCommand处理程序对该按钮一无所知.

那么现在呢?

wpf binding mvvm

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

php邮件头中的哪个换行符,\ r \n或\n?

我见过很多使用php邮件功能的例子.其中一些使用\ r \n作为标题的换行符,有些使用\n.

$headers = "From: Just Me\n"; 
$headers .= "Reply-To:  Just me <$email>\n"; 
Run Code Online (Sandbox Code Playgroud)

VS

$headers = "From: Just Me\r\n";
$headers .= "Reply-To:  Just me <$email>\r\n";
Run Code Online (Sandbox Code Playgroud)

哪一个是正确的?

有时我会遇到使用\ r \n并且某些电子邮件客户端将部分标题解释为邮件文本(丢失这些标题信息)的情况 - 这是因为\ r \n是错误的吗?

php email header

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

WPF:将DataGrid绑定到List <String>

有趣的是,有时简单的事情会在后面咬我.

我可以使用像这样的DataGridTextColumn将DataGrid很好地绑定到某个任意类的Collection:

// bound to List<Class>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
Run Code Online (Sandbox Code Playgroud)

现在我想将DataGrid绑定到一个简单的String集合.因为没有属性"Name"或类似的东西要绑定,我该如何编写绑定:

// bound to List<String>
<DataGridTextColumn Header="Name" Binding="{Binding ???}"/>
Run Code Online (Sandbox Code Playgroud)

字符串没有属性"值"或类似的东西.如果我只是写{Binding},我将最终得到一个单向绑定,无法将更改写回Collection.

想一想,我认为不可能绑定到一个集合,所以我需要将我的字符串包装成一个类?
或者有办法吗?

wpf binding datagrid

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

WPF MVVM:如何将GridViewColumn绑定到ViewModel-Collection?

在我的View中,我在ViewModel中得到了一个绑定到CollectionView的ListView,例如:

<ListView ItemsSource="{Binding MyCollection}" IsSynchronizedWithCurrentItem="true">
  <ListView.View>
    <GridView>
      <GridViewColumn Header="Title" DisplayMemberBinding="{Binding Path=Title}"/>
      <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=Name}"/>
      <GridViewColumn Header="Phone" DisplayMemberBinding="{Binding Path=Phone}"/>
      <GridViewColumn Header="E-mail" DisplayMemberBinding="{Binding Path=EMail}"/>
    </GridView>
  </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

现在这些GridViewColumns是固定的,但我希望能够从ViewModel更改它们.我猜我必须将GridViewColumn集合绑定到ViewModel中的某些东西,但是什么,以及如何?
ViewModel对WPF一无所知,所以我不知道如何在MVVM中实现这一点.

这有什么帮助吗?

c# wpf binding mvvm

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

WP7:将参数传递给新页面?

在Windows Phone 7 Silverlight应用程序中,我使用调用新页面

NavigationService.Navigate(new Uri("/View/SecondPage.xaml", UriKind.Relative));
Run Code Online (Sandbox Code Playgroud)

现在我想将参数传递给新页面.我理解一个简单的参数可以使用:

NavigationService.Navigate(new Uri("/View/TilgungsratePage.xaml?id=4711", UriKind.Relative));
Run Code Online (Sandbox Code Playgroud)

并使用在新页面中阅读

protected override void OnNavigatedTo(Microsoft.Phone.Navigation.PhoneNavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    String id = NavigationContext.QueryString["id"]; 
} 
Run Code Online (Sandbox Code Playgroud)

对于简单参数,这没关系,但如何传递列表?
复杂的物体?
什么,但简单的价值观?

parameter-passing windows-phone-7

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

将WPF Listview滚动到特定行

WPF,类似浏览器的应用.
我有一个包含ListView的页面.在调用PageFunction后,我向ListView添加一行,并希望将新行滚动到视图中:

  ListViewItem item = ItemContainerGenerator.ContainerFromIndex(index) as ListViewItem;
  if (item != null)
    ScrollIntoView(item);
Run Code Online (Sandbox Code Playgroud)

这有效.只要新线在视图中,线就会得到它应该的焦点.

问题是,当线条不可见时,事情不起作用.
如果该行不可见,则生成的行没有ListViewItem,因此ItemContainerGenerator.ContainerFromIndex返回null.

但如果没有该项目,如何将该行滚动到视图中?有没有办法滚动到最后一行(或任何地方)而不需要ListViewItem?

wpf listview scroll

22
推荐指数
3
解决办法
4万
查看次数

在DataRowAttribute中使用十进制值

我已经使用MSTest.TestAdaptor 1.1.17在Visual Studio 2017中运行了测试组件.我想使用DataTestMethod来运行包含多个数据集的测试.我的问题是,我想在我的DataRows中使用十进制值,但不能:

[DataTestMethod]
[DataRow(1m, 2m, 3m)]
[DataRow(1, 2, 3)]
[DataRow(1.0, 2.0, 3.0)]
public void CheckIt(decimal num1, decimal num2, decimal expected)
{
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用[DataRow(100m, 7m, 7m)]它时甚至不会编译源:error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type..

当我使用[DataRow(100, 7, 7)]测试时,测试将失败,因为我的测试期望decimal但是得到int32的值.

当我使用[DataRow(100.0, 7.0, 7.0)]测试时,测试将失败,因为我的测试期望decimal但是得到double的值.

为什么我不能在DataRow中使用十进制数?

c# unit-testing mstest visual-studio-2017

22
推荐指数
2
解决办法
2419
查看次数

如何创建XPS文档?

我想创建一个用于存储和打印的XPS文档.

在我的程序中创建XPS文档的最简单方法是什么(例如,在其中包含一些带有一些数据的简单网格),并传递它?

.net c# xpsdocument xps

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

从c#调用c ++函数指针

是否可以像这样调用ac(++)静态函数指针(不是委托)

typedef int (*MyCppFunc)(void* SomeObject);
Run Code Online (Sandbox Code Playgroud)

来自c#?

void CallFromCSharp(MyCppFunc funcptr, IntPtr param)
{
  funcptr(param);
}
Run Code Online (Sandbox Code Playgroud)

我需要能够从c#回调到一些旧的c ++类.C++是托管的,但类不是ref类(还).

到目前为止,我不知道如何从c#调用c ++函数指针,是否可能?

c# c++ function-pointers

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