编写一个包含大量OperationContracts和DataContracts的大型wcf服务的最佳实践是什么?
我如何将功能区域分成几个合同,最好是为每个功能区域创建一个端点?
有没有办法让不同部分的来源分开,但仍然只为所有部分使用一种服务?
我在哪里可以获得有关如何规划合同,包括哪些内容,如何拆分......的良好信息?
我有一个带有这两个控件的简单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处理程序对该按钮一无所知.
那么现在呢?
我见过很多使用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是错误的吗?
有趣的是,有时简单的事情会在后面咬我.
我可以使用像这样的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.
想一想,我认为不可能绑定到一个集合,所以我需要将我的字符串包装成一个类?
或者有办法吗?
在我的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中实现这一点.
这有什么帮助吗?
在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)
对于简单参数,这没关系,但如何传递列表?
复杂的物体?
什么,但简单的价值观?
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?
我已经使用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中使用十进制数?
我想创建一个用于存储和打印的XPS文档.
在我的程序中创建XPS文档的最简单方法是什么(例如,在其中包含一些带有一些数据的简单网格),并传递它?
是否可以像这样调用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 ++函数指针,是否可能?