绑定PasswordBox密码是个坏主意吗?

我已经读过, 出于安全原因, WPF PasswordBox中的密码没有用于绑定密码的依赖项属性。 尽管如此, 无论如何都有办法绑定它 。 MVVM模式的用户需要这种数据绑定; viewmodel无法在不破坏模式的情况下直接触摸PasswordBox。 在MVVM设置中使用PasswordBoxes的一种方法是将整个PasswordBox控件传递给ViewModel,但这无论如何都会破坏模式。 绑定密码可能是使用MVVM处理密码的最简洁方法。 有一个反对绑定密码的论据,因为这会将明文密码保存在未加密的内存中,直到它被垃圾收集。 但是,我看到它的方式是,从您访问Password属性的那一刻起,密码就会存储在未加密的内存中。 这个观点(或类似的)似乎在这个问题上得到了支持 。 当然,它会在没有约束力的情况下在更短的时间内存在(不是登录forms有长期存在的倾向),但风险仍然存在。 鉴于这些论点,绑定密码真的是一个坏主意吗? 为什么?

使用单击一次部署时的安装问题

我有一个Wpf应用程序,我希望它部署在远程服务器上。 以前我使用过VS2010,所以很容易创建setup / .msi文件并在其他机器上部署。 目前我有VS2012。 它没有设置部署选项。 另外,我阅读了有关部署应用程序的clickonce应用程序部署方法。 我尝试了一种方法,但它没有在本地本身正确安装应用程序。 应用程序快捷方式首次启动应用程序(很少第二次启动)。 下次,它会抛出我的exception “Cannot start application”. Application cannot be started. Contact the application vendor 错误详情如下: ERROR DETAILS Following errors were detected during this operation. * [29-01-2014 11:32:48] System.Deployment.Application.DeploymentException (Activation) – Activation failed. – Source: System.Deployment – Stack trace: at System.Deployment.Application.ComponentStore.ActivateApplication(DefinitionAppId appId, String activationParameter, Boolean useActivationParameter) at System.Deployment.Application.SubscriptionStore.ActivateApplication(DefinitionAppId appId, […]

在“属性”窗口中允许多行String属性

我有一个带有字符串属性的Windows窗体用户控件,用于设置文本框的文本。 这个字符串可以是多行的。 我注意到在一些带有文本属性的控件上,而不是强制键入单行属性文本框,你会弹出一个可以输入多行的地方。 (事实上​​,Windows窗体文本框控件允许在Text属性上使用它。) 如何在我设计的属性的属性窗口中启用此function? 以下不是我的应用程序中的真实代码,而是如何定义此类属性的示例 public string Instructions { get { return TextBox1.Text; } set { TextBox1.Text = value; } }

与u-blox gps的C#串行通信

我有来自u-blox.com的带有USB连接和驱动程序的GPS。 当你插入USB时,驱动程序会安装一个弹出的虚拟COM端口。使用超级终端,我可以观察来自GPS的数据流。 然后我想要我的程序中的数据,不是那么容易… 我已经实现了一些使用serialPort类从GPS读取的方法,但是没有成功。 我之前在C#中编写了几个串口设备读取器和编写器,但这个让我停下来。 例如,除非拔下并重新插入USB,否则simpleSerial中的简单代码不会给你任何东西。 尝试用matlab阅读它,效果很好,但由于我的程序的其余部分需要GPS数据在c#中,这并不能解决问题。 在serialPort类中是否有一些我可以规避的高级C#事情? 或者是否有任何已知的问题,读取USB串行端口,我认为它像我的GPS?

Postsharp:它是如何工作的?

根据我的另一个问题的建议,我转换了引用的代码用于PostSharp: 属性: [Serializable] public sealed class InitAttribute : OnMethodBoundaryAspect { public override void OnEntry(MethodExecutionEventArgs eventArgs) { Console.Write(“Works!”); } } static class Logger { public static string _severity; public static void Init(string severity) { _severity = severity; } [Init()] public static void p() { Console.WriteLine(_severity); } } 尽管如此,我无法获得任何结果(控制台上的“Works!”)。 PostSharp属性中的断点显示永远不会输入。 任何帮助? 提前致谢。

在DataGridView中对行进行分组

我想在Windows窗体上的DataGridView对具有相同名称的行进行分组,这是我想要实现的图像。 是否可以在不使用任何第三方工具的情况下实施?

从代码中滚动WPF FlowDocumentScrollViewer?

我有一个FlowDocumentScrollViewer我想在添加文本时自动滚动到底部。 在代码中我向段落添加了内联,但是当有很多文本时,我希望能够简单地使用代码向下滚动而不是让用户这样做。 有什么建议?

GZipStream正在切断XML的最后一部分

我创建了一个名为AddGZip的扩展方法,如下所示: public static void AddGZip(this HttpResponse response) { response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); response.AppendHeader(“Content-Encoding”, “gzip”); } 这是代码的一个非常简化的版本: var response = HttpContext.Current.Response; var request = HttpContext.Current.Request; var result = File.ReadAllText(path); if (request.SupportsGZip) { response.AddGZip(); } response.Write(result); response.Flush(); 当您在具有GZip支持的Web浏览器中查看响应时,会出现如下错误: “XML解析错误:未关闭的令牌位置: http://webserver1/1234.xml第78行,第1列:” 当我查看源代码时,它基本上错过了XML文件末尾的最后一个> 。 所以1或2个字节。 如果我注释掉AddGZip线,它可以正常工作。 但是我真的想支持GZip,因为XML可能非常大。 有人对我有建议吗? 我已经尝试检查了很多博客,但似乎没有针对此类错误的解决方案。 戴夫

c#wpf – 无法同时设置DisplayMemberPath和ItemTemplate

我想在listboxItem中添加工具提示,但是当有DisplayMemberPath时它会启动问题。 错误信息说:无法同时设置DisplayMemberPath和ItemTemplate。 当我删除DisplayMemberPath时,每个列表项中的工具提示都有效。 但我不想删除DisplayMemember因为我需要它。 如何解决这个问题呢?

如何使用TrackBar浮点数

我正在使用TrackBar控件。 默认情况下,其值为int32 。 我真的想使用十进制值,因此使用可以更精细地选择。 如何让TrackBar控件接受浮动?