我正在阅读有关ResourceDictionary的内容,并且已经陷入了困惑.
看来我每个XAML只能有1个ResourceDictionary.所以,如果我想使用多个,我可以合并ResourceDictionaries.
如果我可以合并词典那么"全球"风格应该在哪里生活?我可以拥有一个ApplicationResourceDictionary,其中包含在我的应用程序中保持一致的所有样式,或者我可以将此信息保存到App.xaml文件中.两者似乎都是有效的选项,但我不知道是否是这种情况.
这是关于个人选择还是比另一个更好?看起来将它们保存在ResourceDictionaries中会更好,因为所有样式都在一起(在字典中)而不是在XAML页面中拆分一些.
我的应用程序在屏幕上显示图像(基于本地计算机上的文件的图像),用户可以根据需要删除它们。
每次我尝试删除文件时,都会出现以下错误消息:
"The process cannot access the file 'C:\\Users\\Dave\\Desktop\\Duplicate\\Swim.JPG' because it is being used by another process."
Run Code Online (Sandbox Code Playgroud)
我理解错误消息。
我有一个UserControl
接受文件路径(通过构造函数中的参数),然后将其绑定到它的 (UserControl) DataContext
。
作为调试此问题的一部分,我发现问题是由于在 UserControl 中设置 DataContext 造成的。如果我this.DataContext = this;
从用户控件中删除,那么我可以删除该文件。
所以,我的测试单元看起来像
Ui.UserControls.ImageControl ic = new ImageControl(
@"C:\Users\Dave\Desktop\Duplicate\Swim.JPG");
try
{
File.Delete(@"C:\Users\Dave\Desktop\Duplicate\Swim.JPG");
}
catch (Exception ex)
{
Assert.Fail(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
用户控制代码隐藏
public ImageControl(string path)
{
this.FilePath = path;
this.DataContext = this; // removing this line allows me to delete the file!
InitializeComponent();
}
#region Properties
private string _filePath;
public string …
Run Code Online (Sandbox Code Playgroud) 我认为单身人士的观点是我一次只能初始化一个实例?如果这是正确的,那么我必须在我的C#控制台应用程序代码中出错(见下文).
如果我对单身人士的理解是正确的,或者我的代码中有错误,请有人告诉我.
using System;
using System.Collections.Generic;
using System.Text;
namespace TestSingleton
{
class Program
{
static void Main(string[] args)
{
Singleton t = Singleton.Instance;
t.MyProperty = "Hi";
Singleton t2 = Singleton.Instance;
t2.MyProperty = "Hello";
if (t.MyProperty != "")
Console.WriteLine("No");
if (t2.MyProperty != "")
Console.WriteLine("No 2");
Console.ReadKey();
}
}
public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();
public string MyProperty { get; set; }
private Singleton()
{}
static Singleton()
{ }
public static Singleton Instance { get …
Run Code Online (Sandbox Code Playgroud) 我不在,因此,无法使用Visual Studio访问PC,但我很想知道新的WP8 SDK.特别是2个方面.
现在WP7 SDK非常有限(查看投诉论坛),我想知道是否有人可以回答两个问题因为我不耐烦等到我回来了.
SDK是否让我控制手机音量?
一个.我想制作一个应用程序,根据一天中的时间和我的前景日历状态将手机变为静音(例如,如果我正在参加会议,请不要响铃).WP7无法实现这一点
我可以在没有用户控制的情况下发送短信(例如,作为后台任务).一个.在WP7上,您可以安排消息,但用户必须仍然单击发送按钮.
或者,是否有人知道"WP8 SDK中的新功能",他们也能指出我的意思?目前我在谷歌上找不到任何东西(如果存在这样的话).
我在Visual Studio中的一个项目是WPF项目.
我有创建的默认文件加上我添加的2个类和几个文件夹.
我的问题是,当我尝试将一个Window添加到我的View文件夹时,我不能因为我没有Window(或页面)的选项.
正如您所看到的,出于某种原因,尽管我的应用程序被创建为WPF项目,但它现在认为它是一个WinForms项目.
如何将其从WinForms还原/更改为WPF项目?
编辑
请注意,我使用的是Visual Studio 2012 Premium.
如果我添加一个新的WPF项目,我会得到Page/Window等选项,所以这个错误是项目特定的.
根据评论,这是我点击添加新项目时得到的屏幕(抱歉,我不能放在整个列表中)
这是WPF菜单的视图
将多个收件人添加到a时MailMessage.BCC
,没有选项AddRange()
.只要MailMessage.Bcc.Add();
可以通过扩展方法更改此功能吗?在这一点上我有点失落,任何指针都会非常感激.
我最近在stackoverflow上得到了一些很好的帮助.其中一个答案让我感到困惑,由于评论框的限制,我觉得不适合得到解释.
请查看以下代码.
if ((File.GetAttributes(fileName) & FileAttributes.Archive) == FileAttributes.Archive)
{
// Archive file.
}
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么你会在&之后包含逻辑(参见粗体)
(File.GetAttributes(fileName)&FileAttributes.Archive)==等
肯定FileAttributes.Archive == FileAttributes.Archive将始终匹配?
有没有人对此有解释(国际海事组织这可能是一个错字/错误,但我以前假设太多东西,以后才能纠正!)
第二个问题是~
代码在此代码中的作用:
File.SetAttributes(fileName, File.GetAttributes(fileName) & ~FileAttributes.Archive);
Run Code Online (Sandbox Code Playgroud) 我正在尝试在C#中向MailAddress添加多个字符串.
如果我要使用ForEach
,我的代码看起来像
foreach (var item in GetPeopleList())
{
m.Bcc.Add(new MailAddress(item.EmailAddress));
}
Run Code Online (Sandbox Code Playgroud)
我现在正试图用我的foreach(即List.ForEach()
)来做这件事而我不能.
public class Person
{
public Person(string firstName, string lastName, string emailAddress)
{
FirstName = firstName;
LastName = lastName;
EmailAddress = emailAddress;
}
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
}
static void Main(string[] args)
{
MailMessage m = new MailMessage();
List<Person> people = GetPeopleList();
m.Bcc.Add(people.ForEach(Person people =>
{
//what goes …
Run Code Online (Sandbox Code Playgroud) 我正在使用EF来保存日期时间.
日期正在保存到数据库,但不是时间.我正在使用这种date
类型.但是,SSMS(2012 express)字段仅显示dd/MM/yyyy
(没有时间)
读它回来就是这样的 26/07/2014 00:00:00
我假设它显示00:00:00,因为这是它被保存的方式(尽管没有显示).
要保存条目,我只是将DateTime分配给我的属性.
myEfModel.Date = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)
我也尝试过(确保数字的位数不会使保存中的SQL混乱)
var timeNow = DateTime.Now;
timeNow.AddMilliseconds(-timeNow.Millisecond);
myEfModel.Date LastUsed = timeNow;
Run Code Online (Sandbox Code Playgroud)
搜索SO显示大多数人声称 they have no problems saving DateTime.Now via EF
为什么不节省时间?
我正在使用EF来更新我的数据库.
我首先根据一些标准查询数据库.这将返回我期望的记录(或返回null).自然地,在此查询期间,执行查询时会有轻微的延迟.
然后,我将属性中的属性从false更改为true,或者创建一个新条目.
然后我将这个对象添加到我的实体中,最后选择myEntitiy.SaveChanges().这似乎没有执行.没有延迟.然而代码传递到下一行,因此不会抛出任何异常.
这就是我所拥有的
public class MyCompany : AbstractCompany
{
public override bool UpdateStatus(string emailAddress, bool isOptIn)
{
var personDetail = (from a in base.Entities.MyCompanyTable
where a.EmailAddress == emailAddress
select a).SingleOrDefault();
if (personDetail == null)
{
personDetail = new MyCompanyTable();
personDetail.EmailAddress = emailAddress;
}
personDetail.IsSubscribed = isOptIn;
base.Entities.MyCompanyTable.Add(personDetail); //also tried attach, same issue over
return base.SaveData();
}
}
Run Code Online (Sandbox Code Playgroud)
我的基础是
public abstract bool UpdateStatus(string emailAddress, bool isOptIn);
protected Entities Entities
{
get { return new Entities(); }
}
protected bool …
Run Code Online (Sandbox Code Playgroud)