如何在不更改viewmodel的属性getter的情况下格式化XAML中的字符串?

我在我的应用程序中有以下界面: public interface IContactMedium { string ContactString { get; set; } string Type { get; set;} bool IsValid(); } 此接口用于表示某人的某种联系的对象。 它可以是电话,电子邮件等ContactString属性是实际的联系人数据(例如,对于电话,它将是电话号码),并且Type用于区分,以防一个人有多个(用于手机,一个人可以拥有家庭电话,工作电话,手机等。) IsValid方法是每种不同类型的接触媒体的validation机制。 所以,假设我的应用程序中有两个对象 – Email和Phone – 都实现了界面。 我将在应用程序中创建一个UserControl ,它包含一个管理此类对象列表的UI。 所以viewmodel看起来像这样: public class ContactsCollectionViewModel : ViewModelBase where T : class, IContactMedium { private ObservableCollection _itemsCollection; public ContactCollectionViewModel(ObservableCollection items) { ItemsCollection = items; } public ObservableCollection ItemsCollection […]

从事件日志获取事件的详细信息

我试图根据列表框中项目的选择从事件日志中获取详细信息。 我试图将细节放入文本框中。 我已经成功地找到了自己的解决方案。 我所做的,并且非常慢,通过事件日志重复并找到与日志索引的匹配,然后显示消息,但这是一个耗时的操作。 是否有更快的方法可以根据日志索引直接获取特定的日志条目。 我使用WPF和C#。 private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e) { EventLog eventLog1 = new EventLog(); eventLog1.Log = “System”; foreach (System.Diagnostics.EventLogEntry entry in eventLog1.Entries) { var newEntry = entry.Index + ” – ” + entry.EntryType + ” – ” + entry.TimeWritten + ” – ” + entry.Source; backgroundWorker2.ReportProgress(0, newEntry); } } void backgroundWorker2_ProgressChanged(object […]

将XML字符串作为响应发送

我从第三方应用程序(不同的域)收到我的请求到我的ASP应用程序。 我正在处理请求并在我的应用程序中执行业务部分,并且作为确认,我需要将XML字符串作为响应发送到将请求发布到我的应用程序的同一页面。 我成功地使用以下代码从Request检索输入 NameValueCollection postPageCollection = Request.Form; foreach (string name in postPageCollection.AllKeys) { … = postPageCollection[name]); } 但我不知道如何将响应和XML String一起发送回网站(不同的域)? 编辑:如何从POST发生的位置获取URL。

.net MVC:如何仅向授权用户提供静态文件

我的网站上有静态文件,如: http://myurl.com/Content/a.html http://myurl.com/Content/b.html ……等 我想在访问时validation用户的身份validation。 应通过数据库的数据检查身份validation。 我的框架:ASP.NET MVC5

C#异步方法 – 需要帮助

我有一个消耗Web API操作的异步方法。 它似乎陷入了一个循环。 我的理由是因为如果我在catch块的第1行放置一个断点,并且进入,它实际上从未击中第二行。 我最初返回一个包含100,000+(~30mb)行的数据集,并认为由于请求的大小,它可能会很慢,但在更改我的Web API操作以仅返回1行后,问题仍然存在。 当我浏览到Web API解决方案的URI时,肯定会返回数据,我在浏览器中返回了JSON。 public async Task<IEnumerable> GetAll() { try { var response = await _client.GetAsync( string.Format(“{0}/api/document”, _baseURI)); // never hits line below return await response.Content.ReadAsAsync() as IEnumerable; } catch (Exception ex) { // handle exception } } 我不确定我在这里遗失了什么? 一些帮助将不胜感激。 编辑1 在回答一些问题时,我有一个由MVC项目引用的Web API项目。 我必须对JSON反序列化的原始问题进行一些更改。 库: public async Task<IEnumerable> GetAll() { try […]

合并排序代码不起作用并显示exception

public static void Merge(int[] arr,int p,int q,int r ) { int n1 = qp; int n2 = rq; int[] L=new int[n1]; int[] R = new int[r-n2]; for (int i = 0; i < n1; i++) L[i] = arr[i]; foreach (int x in L) Console.WriteLine(x); for (int i = 0; i < n2; i++) R[i] = […]

通过C#交换PowerShell命令

我正在使用C#发送与Exchange交互的PowerShell命令。 我有一个名为initconnection的方法,它设置我与Exchange的连接。 当我单击一个按钮时,我会调用另一种方法,该按钮将在建立连接后向powershell发送命令。 但是我无法继续创建的连接。 当我尝试运行命令时,它说找不到命令。 很可能是因为它没有交换cmdlet。 Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace(); runspace.Open(); Pipeline pipeline = runspace.CreatePipeline(); pipeline.Commands.AddScript(“Set-ExecutionPolicy Unrestricted -Scope process -Force;$password = ConvertTo-SecureString -AsPlainText -Force ” + password + “;$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist ” + username + “,$password;$LiveCred = Get-Credential -Credential $mycred; $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic –AllowRedirection; […]

如何更新数据集

在我的项目中,有两个textBox, txtName和txtPopulation以及一个Button, btnClick 。 每当用户单击btnClick ,数据集dsDetails的“Population”列中的dsDetails应该通过txtPopulation的值更新,其中“Name”列等于txtName 。 我知道这可以使用rowfilter或select来完成,但我不知道在其中实现什么。 请不要linq 目前,我正在做这样的事情..( 工作 ) for (int intCount = 0; intCount < dsDetails.Tables[0].Rows.Count; intCount++) { if (lblCountryName.Text.Equals(dsDetails.Tables[0].Rows[intCount][0].ToString())) { dsDetails.Tables[0].Rows[intCount][3] = txtPopulation.Text; } }

如何从BackgroundWorker线程中更新标签?

当我使用WinForms时,我会在我的bg_DoWork方法中完成此bg_DoWork : status.Invoke(new Action(() => { status.Content = e.ToString(); })); status.Invoke(new Action(() => { status.Refresh(); })); 但是在我的WPF应用程序中,我收到一条错误,指出Label不存在Invoke 。 任何帮助,将不胜感激。

C#如何在类实例之间保留数据?

为模糊的标题道歉,但我不确定如何解释它。 鉴于A,B和C类 如果A类包含List,那么如何保存该列表中的数据,以便B类和C类可以访问列表中的数据(即使B和C都新建了它们自己的A类实例)? 类B和C必须创建自己的实例(这是我无法控制的)。 我使用这个类作为我的对象数据源,让我说我不能修改C类的内容。 以下是一个示例类: [DataObject] public class Product { public string Name {get; set;} public string Category {get; set;} public int ID {get; set;} public List ProductList = new List(); [DataObjectMethod(DataObjectMethodType.Select)] public IEnumerable GenerateReport() { return ProductList; } }