StringBuilder的Append(字符串s)函数(和类似函数)的完整语法是
StringBuilder myStringBuilder.Append(string myString)
Run Code Online (Sandbox Code Playgroud)
既然myStringBuilder.Append(string myString)已经添加了字符串myStringBuilder,我想知道返回值是什么?我从未见过任何使用返回值的示例代码.
根据msdn,它不会返回一个新StringBuilder实例,而是返回对当前构建器本身的引用(即可能myStringBuilder).我只是想不到一个场景,当使用返回值有意义时,他们为什么不做返回类型void?
在我的WPF应用程序中,我使用了一个组合框.当用户想要选择一个项目时,他可以输入字母,组合框跳转到以这些字母开头的下一个条目.如果用户停止输入并在一定延迟后再次启动,则组合框假定用户已经开始使用新单词.嗯,这是通常的ComboBox行为,没有什么特别的......问题是,我们的一些用户是慢速打字机.假设用户正在搜索新单词,是否有办法增加在没有组合框的情况下输入两个字母之间的时间?希望你知道我的意思......
在我的WPF应用程序中,我遵循MMV模式.我有一个嵌套子视图的主视图.我有一个主VM来保存子VM的实例.在某些时候,当VM VM的某些属性发生变化时,需要通知主VM.
我在网上搜索了很多.首选方法似乎是使用现有框架(MVVMlight/Prism)和/或某种信使服务.每当在任何板/常见问题上询问有关VM交互的问题时,您可以确定至少有一个答案建议使用此方法.虽然我可以很好地看到它在大型应用程序中的优势(或者如果您正在寻找"通用"解决方案),但对于小型应用程序来说,它有时似乎是一个很大的开销.
对我而言,最明显的方法,特别是在小型应用中,将是
要么
我想知道这两种方法是否存在"错误",因为我看不到它们违反了MVVM规则?也许我错过了什么?
当您无法利用在应用程序中使用基于信使的方法的优势时,可以使用这些方法之一吗?
是否可以在XAML中合并两个ContextMenues?
我创建了两个ContextMenues作为资源。我在几个DataTemplates中使用它们,效果很好。但是,对于某些DataTemplates,我想将两个ContextMenus合并。不幸的是,这似乎不起作用。这是这些ContextMenu中的一个的一些代码,其他的定义相同:
<ContextMenu x:Key="CtxIEditableViewModel" DataContext="{Binding PlacementTarget,RelativeSource={RelativeSource Self}}">
<MenuItem Header="Edit" Command="{Binding Path=DataContext.EditCommand}" CommandParameter="{Binding }">
<MenuItem.Icon>
<Image Source="{StaticResource IcoEdit}" Width="16" Height="16"></Image>
</MenuItem.Icon>
</MenuItem>
...
Run Code Online (Sandbox Code Playgroud)
使用其中一个ContextMenues可以正常工作:
<StackPanel Orientation="Horizontal" ContextMenu="{StaticResource CtxIEditableViewModel}">
Run Code Online (Sandbox Code Playgroud)
但是如何合并两个呢?这行不通
<StackPanel Orientation="Horizontal">
<ContextMenu>
<ContextMenu.ItemsSource>
<CompositeCollection>
<StaticResource ResourceKey="CtxIEditableViewModel" />
<StaticResource ResourceKey="CtxRootViewModel" />
</CompositeCollection>
</ContextMenu.ItemsSource>
Run Code Online (Sandbox Code Playgroud)
而且这也不起作用:
<StackPanel Orientation="Horizontal">
<ContextMenu>
<StaticResource ResourceKey="CtxIEditableViewModel" />
<StaticResource ResourceKey="CtxRootViewModel" />
</ContextMenu>
Run Code Online (Sandbox Code Playgroud)
当我运行程序时,抛出一个异常,说明上下文菜单可能不包含逻辑或可视父级。因为如果我仅使用一个ContextMenu,它可以正常工作,所以我不理解异常消息。
如何在XAML中合并这两个ContextMenu(或者根本不可能)?