我试图在我的DataGrid中显示那些共享相同列值的行.
例如,对于拥有相同姓氏的人,我试过这个:
dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.SurName).Where(grp => grp.Count() > 1).Select(grp => grp.Key);
Run Code Online (Sandbox Code Playgroud)
这似乎是有效的,因为我的WPF DataGrid在此命令之后包含行...最终它只显示空行,因为没有列填充值.
或者我和拥有相同城市的人员一起尝试过:
dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.City).Where(grp => grp.Count() > 1).Select(grp => grp.Key).Select(a => a);
Run Code Online (Sandbox Code Playgroud)
有没有正确的方法来做到这一点?
有没有办法在WPF中创建Windows 8 ProgressBar?
我不是指转弯圈,我的意思是像那样的动画(用蓝点):
http://blog.humann.info/image.axd?picture=2012%2f3%2fanimated_loader.gif
我想询问我的客户,他们的生日还未到来.
我已经尝试过这个查询,当然 - 它已经失败了:
Addresses.Where(adr => adr.DateOfBirth != null && adr.DateOfBirth.Value >
DateTime.Now).Take(15).ToList();
Run Code Online (Sandbox Code Playgroud)
当然这不能正常工作(如果你将来出生的话),我想知道如何在Nullable<DateTime>没有一年的情况下查询我的情况?
我在我的WCF服务中使用NLog,并希望记录呼叫者IP地址.
我已经使用ASPNET-LayoutRenderers试过(${aspnet-request:serverVariable=remote_host},${aspnet-request:serverVariable=remote_addr},但无济于事,作为内部NLOG异常被抛出,正在生成日志文件.
有没有办法在WCF服务中记录IP地址,而无需将其作为参数传递给被调用的方法?
我正在尝试使用WPF和MVVM从我的网络服务器下载一个大文件(500 mb).因此,以下属性都绑定到某种控件(进度条).问题是,即使使用DownloadFileAsync,应用程序仍然会挂起.
该文件被下载,因为我可以从我的日志(文件越来越多,当然)告诉.
这是我的代码:
#region Methods
private void StartDownload(string url, string localPath)
{
Logger.Debug("Starting to initialize file download");
if (!_webClient.IsBusy)
{
_webClient = new WebClient();
_webClient.Proxy = null; // http://stackoverflow.com/questions/754333/why-is-this-webrequest-code-slow/935728#935728
_webClient.DownloadFileCompleted += webClient_DownloadFileCompleted;
_webClient.DownloadProgressChanged += webClient_DownloadProgressChanged;
_webClient.DownloadFileAsync(new Uri(url), localPath);
}
Logger.Debug("Finished initializing file download");
}
private void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
Logger.Debug("Download finished! Cancelled: {0}, Errors: {1} ", e.Cancelled, e.Error);
}
private void webClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
Logger.Debug("Downloading... Progress: {0} ({1} bytes / {2} bytes)", e.ProgressPercentage, …Run Code Online (Sandbox Code Playgroud) 我有一个数据库的标记枚举,我想转换为第三方的枚举数组.
为此,我使用以下代码:
private TheirEnum[] GetTheirEnums(MyEnum? ourEnums)
{
List<TheirEnum> result = new List<TheirEnum>();
if (ourEnums != null)
{
if (ourEnums.Value.HasFlag(MyEnum.Geothermal))
{
result.Add(TheirEnum.GEOTHERMAL);
}
if (ourEnums.Value.HasFlag(MyEnum.SolarHeating))
{
result.Add(TheirEnum.SOLAR_HEATING);
}
}
else
{
result.Add(TheirEnum.NO_INFORMATION);
}
return result.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
但是,由于该枚举列表中有超过50个条目,我认为这会变得非常混乱和丑陋.有一个更好的方法吗?
执行以下脚本(这是实际脚本的一部分)时,我在 powershell 中收到以下错误消息:
The term 'xsd' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:10 char:3
$xsds = ls *.xsd | %{ $_.Name }
if ($xsds.Count -eq 0) { exit }
# Add '.\' to last file name, see http://stackoverflow.com/questions/906093/xsd-exe-output-filename
$last = $xsds | select -last 1
$last = '.\' + …Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一堆(非常)大图像.为了使它们适合我的ImageView和相应的Image控件,我使用以下XAML:
<Image Name="imageEdit" Stretch="Uniform" />
Run Code Online (Sandbox Code Playgroud)
现在,当使用大图像时,这会非常有效,因为它们会自动缩小.然而,当显示小图像时,它们被缩放得更高并因此变得模糊.
有没有办法可以防止这种情况发生,只有那些图像调整大小,否则实际上会到达Image控件的边界后面?
是否有一种编程方式来确定装配本身何时被加载?
我知道如何从正在执行的程序集中检查已加载的程序集,但我想从将要加载的程序集"内部"执行此操作.
这样我就可以确定应用程序(使用已加载的程序集)已经启动,但是我的加载程序集中的类没有被实例化/到目前为止还没有调用任何方法.
c# ×8
linq ×2
wpf ×2
cmdlet ×1
devexpress ×1
enums ×1
image ×1
ip-address ×1
mvvm ×1
nlog ×1
powershell ×1
progress-bar ×1
reflection ×1
resize ×1
scaling ×1
syntax ×1
wcf ×1
webclient ×1
xsd ×1