public class Person
{
Name { get; set; }
IEnumerable<Address> Addresses { get; set; }
}
public class PersonModel
{
Name { get; set; }
IEnumerable<AddressModel> Addresses { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我映射Person到PersonModel这样:
Mapper.DynamicMap<Person, PersonModel>(person);
Run Code Online (Sandbox Code Playgroud)
如果Addresses属性on Person为null,则它们将映射PersonModel为空Enumerable而不是null.
如何获得PersonModelnull Addresses而不是空Enumerable?
我有一个Metro应用程序,我正在尝试打印WebView控件的内容.使用MSDN Print Sample作为我的源参考.我简单地改变XAML中printableArea,如下所示:
<RichTextBlock>
<Paragraph>
<InlineUIContainer>
<WebView Width="800" Height="2000" Source="http://www.stackoverflow.com"/>
</InlineUIContainer>
</Paragraph>
</RichTextBlock>
Run Code Online (Sandbox Code Playgroud)
这部分起作用.问题是Visible指定尺寸的区域是Printed,即可以滚动的区域不打印,也不会在PrintPreview中显示为多页.
我几乎在那里,希望得到一些帮助,让它按预期工作.
我没有在任何地方找到任何样本,这解决了这个具体问题.
我甚至在这里尝试过这些解决方案:http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/5edcb239-7a5b-49f7-87e3-e5a253b809c4
我不是第一个遇到相同/类似问题的人:http: //social.msdn.microsoft.com/Search/en-US/?Refinement = 112&query = print%20webview #refinementChanges = 180&pageNumber = 1&showMore = false
愿意为能解决这个问题的人提供100分的赏金.非常感谢演练,示例代码或模拟项目作为解决方案.
试图await在LINQ查询中使用关键字,我得到这个:
'await'运算符只能用在初始'from'子句的第一个集合表达式中的查询表达式中,或者用在'join'子句的集合表达式中
示例代码:
var data = (from id in ids
let d = await LoadDataAsync(id)
select d);
Run Code Online (Sandbox Code Playgroud)
是不可能等待LINQ查询中的某些内容,还是需要以不同的方式构建它?
我正在WPF中构建一个实时多线程应用程序,但我在更新UI时遇到了困难.
我有一个后台工作线程,其中包含确定要发送到市场的交易的逻辑.当有效交易发送到市场时,我通过主应用程序窗口中的事件接收这些交易的状态更新.我有其他活动,我收到实时价格更新.
通过这些活动,我更新了UI.现在看来,我在整个应用程序中如此迅速地接收事件,UI无法跟上接收事件的速度 - 导致UI缓慢更新或根本不更新.基本上UI冻结了.在所有事件都被触发后,UI再次缓慢响应.一旦完全响应,UI就会显示我期待的数据.
我的问题是,如何在接收事件的同时实时更新UI?我一直在努力解决这个问题,所以任何帮助都会受到赞赏.
提前致谢!
我正在尝试创建一个ObservableConcurrentDictionary.此对象将用于多线程应用程序,它的数据用于通过控件ItemsSource属性填充控件.
这是我提出的实现:
public sealed class ObservableConcurrentDictionary<TKey, TValue> : ConcurrentDictionary<TKey, TValue>, INotifyCollectionChanged, INotifyPropertyChanged
{
#region Constructors
public ObservableConcurrentDictionary()
: base()
{
}
public ObservableConcurrentDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection)
: base(collection)
{
}
public ObservableConcurrentDictionary(IEqualityComparer<TKey> comparer)
: base(comparer)
{
}
public ObservableConcurrentDictionary(int concurrencyLevel, int capacity)
: base(concurrencyLevel, capacity)
{
}
public ObservableConcurrentDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey> comparer)
: base(collection, comparer)
{
}
public ObservableConcurrentDictionary(int concurrencyLevel, int capacity, IEqualityComparer<TKey> comparer)
: base(concurrencyLevel, capacity, comparer)
{
}
public ObservableConcurrentDictionary(int concurrencyLevel, IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey> comparer)
: base(concurrencyLevel, …Run Code Online (Sandbox Code Playgroud) .net wpf inotifycollectionchanged inotifypropertychanged interface-implementation
我正在开发一个相当大的.NET WPF实时应用程序.该应用程序运行良好,正如预期的那样,除了一个大问题 - UI更新很慢.
这个应用程序是高度事件驱动的,有各种各样的事件引发 - 通过这些事件UI更新.
这些事件中的一个或多个阻止UI立即显示.完成所有工作后,UI会显示预期结果.
有没有办法确定哪个事件处理程序导致瓶颈?
任何帮助,将不胜感激.
我有一个多线程C#应用程序,其中核心逻辑位于Timer.Elapsed事件处理程序中.事件处理程序包含2个for循环,最多执行n * n = 5 * 5 = 25 times.
该应用程序在我的PC上运行良好.我VS 2010 Profiler针对应用程序运行,CPU使用率平均为20%.
该公司的测试人员说,在他的电脑上,他的电脑上的这个数字会上升到50%到100%之间.这导致了他的性能问题.
XCPU的数量?任何帮助,将不胜感激.
我正在尝试将一些TcpClient相关代码移植到.net 4.5,使用StreamSocket和DataReader替代.
我有一个名为的函数ReadLine(),它在任何地方都使用.通过DataReader在LoadAsync()此代码的body()中使用,我的方法被强制用async关键字标记.
连锁反应如下:现在我有数百个地方需要添加async到调用方法并应用等待基础async方法调用.
这引出了我的下一个问题...是否有一种简单的方法来包装,ReadLine()以便调用方法不知道它是一个异步方法,所以我不必更改我的其余代码?
另外......我经常在一个循环中使用这个方法调用,来自多个地方.如果现在标记了这些方法async,我恐怕我可能会在不应该的时候从数据流中读取数据,这将导致各种恶梦.这是一个问题还是我想得太远了?
我想在winRT(Windows应用商店应用程序)中更改组合框的颜色.
看起来像这样.我想用紫色代替.

我试过了:
<ComboBox>
<ComboBox.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}">Red</SolidColorBrush>
</ComboBox.Resources>
<ComboBoxItem>One</ComboBoxItem>
<ComboBoxItem>Two</ComboBoxItem>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为x:静态不再存在于Windows应用程序中,如果我使用StaticResource,则资源"System.HighlightBrushKey"不存在.
谢谢
我有一个从多个线程经常调用的方法.它涉及使用写入磁盘await FileIO.WriteTextAsync.从单个线程调用它时工作正常,但是一旦我开始在多个线程中执行此操作,我会收到此错误:
The process cannot access the file because it is being used by another process.
Run Code Online (Sandbox Code Playgroud)
我知道错误意味着什么,但我不知道如何解决它.通常,我会创建一个lock(object)语句,以确保一次只有一个线程访问该文件.但是,这是一个异步方法,因此我不能await在lock(object)语句的主体中使用运算符.
请告知如何处理此方案.
.net ×4
c# ×4
.net-4.5 ×3
wpf ×3
async-await ×2
winrt-async ×2
winrt-xaml ×2
automapper ×1
block ×1
c#-5.0 ×1
colors ×1
combobox ×1
cpu-usage ×1
for-loop ×1
linq ×1
locking ×1
performance ×1
real-time ×1
refresh ×1
windows ×1