基本上我有以下结构:
<Window ...
xmlns:my="http://schemas.company.com/WPF/Controls"
>
<Window.Resources>
<Style x:Key="MyStyle1" TargetType={x:Type TextBlock}>
...
</Style>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<my:MyUserControl1 />
<my:MyUserControl1 />
<my:MyUserControl2 />
<my:MyUserControl2 />
</Grid>
</Window>
<UserControl ...
>
<TextBlock Style={ ?? What Goes Here ??} />
</UserControl>
Run Code Online (Sandbox Code Playgroud)
什么更有效率?抛出异常或抛出错误......我看到的方式是有两种情况:
发生异常并被捕获,您是否抛出现有的Exception或创建一个新的FaultException并抛出它?
您自己的逻辑(例如用户名不能为空)需要将错误抛出为Exception或FaultException.你选哪个?
基本上,哪种方式是最佳实践方式?我问,因为我记得在某处读到有关WCF装箱或拆箱的异常,并且它需要花费额外的资源等...所以我猜也是,这是更有效的方式?
我正在试图找到一种方法来绕过这个可怕的260个字符的完全限定路径限制,同时我想知道为什么到底有一个路径限制开始!?我知道有些人260似乎"很多",但事实上我并没有遇到这个问题.
基本上:
为什么必须有字符限制?
怎么绕过它呢?
发现这个功能在线,效果很好......除了我无法弄清楚如何默认它在横向打印.
private void PrintClick(object sender, RoutedEventArgs e)
{
PrintDialog dialog = new PrintDialog();
if (dialog.ShowDialog() == true)
{ dialog.PrintVisual(_PrintCanvas, "My Canvas"); }
}
Run Code Online (Sandbox Code Playgroud)
如何实际设置默认值以将我的wpf内容打印到横向模式?
让Enterprise Architect识别C#中的可选参数的任何选项?
我试图导入现有代码并收到以下错误:
在第30行解析C:\ MyProject\FooBar.cs时出错.意外的符号:=
码:
public void Foo(int bar = 1) //Line 30
{
}
Run Code Online (Sandbox Code Playgroud)
我还尝试从头开始并从Enterprise Architect生成代码.我创建了一个类,然后向该类添加了一个操作并定义了参数.编辑参数的表单允许我提供"名称","类型"和"默认"(以及其他信息).我添加了Name:bar,Type:int,默认值:1.然后,当我生成代码时,这就是我得到的(没有生成可选参数!)
namespace System {
public class FooBar {
///
/// <param name="bar"></param>
public void Foo(int bar){
}
}//end FooBar
}//end namespace System
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我理解,如果您///在类,字段,方法或属性之上,Visual Studio将开始为您创建XML样式的注释.
但是,我在哪里可以为我的命名空间和/或库添加XML注释...
例如:
我不确定这些页面是手动创建的,还是通过在适当的位置添加XML样式的注释自动创建的?
基本上,我有一个控件,我想从Selector类扩展.我知道Selector允许选择多个子项,但我不希望这样.我只希望一次选择一个孩子.
是否有一个我在Selector类中没有看到的设置区分允许的单个/多个选择,或者是由我编写的扩展Selector类的类控制的东西?
是否有一种首选做法是从ViewModel中进行数据验证?
调查一下,有些人似乎更喜欢IDataErrorInfo,有些人更愿意推出自己的验证框架(http://www.codeproject.com/KB/WPF/wpf_custom_validation.aspx)?
我想知道数据验证的"最佳实践"是什么?在遵守MV-VM指南时,社区是否接受了某些内容?
哦,还有一个FYI,我使用Prism作为我的MVVM框架,但我认为它没有任何用于验证帮助的代码.
我不确定我在这里做错了什么,或者是否需要修复......
我有一个自定义的Dictionary包装类,这里是一段必要的代码片段.
public int Count
{
get
{
Contract.Ensures(Contract.Result<int>() >= 0);
return InternalDictionary.Count;
}
}
public bool ContainsKey(TKey key)
{
//This contract was suggested by the warning message, if I remove it
//I still get the same warning...
Contract.Ensures(!Contract.Result<bool>() || Count > 0);
return InternalDictionary.ContainsKey(key);
}
Run Code Online (Sandbox Code Playgroud)
唯一的原因,我添加了的containsKey行是因为我得到了下面的警告消息(现在仍然如此)Codecontracts: ensures unproven: !Contract.Result<bool>() || @this.Count > 0.我可以删除这一行并仍然得到相同的问题!
我该怎么做才能摆脱这些问题?
更新:
我也试过(按照建议)......
public Boolean ContainsKey(TKey key)
{
Contract.Requires(Count == 0 || InternalDictionary.ContainsKey(key));
Contract.Ensures(!Contract.Result<bool>() || Count > 0);
return InternalDictionary.ContainsKey(key);
}
Run Code Online (Sandbox Code Playgroud)
警告5方法'My.Collections.Generic.ReadOnlyDictionary …
我有点问题,我不确定如何解决它.我有我的模型组件,其中包含大约200个不同的业务对象(订单,客户,产品等).
当有人想要获得订单时,我不想返回整个对象图.相反,我想简单地返回对象和延迟加载(甚至异步加载)其他部分.这似乎会导致许多"获取(对象名称)"服务:
我不想创建200种不同的方法,每种方法对应一次Get操作.我意识到我可以做类似的事情GetObject(string type, int id),然后以某种方式使用反射来获得适当的对象,但我认为这更糟糕(可能).
相反,如果我使用T4模板自动完成创建每个不同服务的工作,那会更好......但它仍然让我担心一件事...... 性能.
是否有暴露200多种不同的服务(每个对象一个)?
c# ×5
wpf ×4
wcf ×2
.net ×1
assemblies ×1
exception ×1
fault ×1
filepath ×1
idictionary ×1
landscape ×1
multi-select ×1
mvvm ×1
namespaces ×1
performance ×1
printing ×1
resources ×1
sandcastle ×1
selector ×1
styles ×1
validation ×1
xml-comments ×1