Tag: silverlight

MVVM模型到ViewModel通信

我有一个简单的场景,包括View,ViewModel和自定义类型类。 模型类是这样的: public class Person : Validation.DataError, INotifyPropertyChanged { #region INotifyProperty public event PropertyChangedEventHandler PropertyChanged; public void RaisePropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } #endregion public global::System.String name { get { return _name; } set { _name= value; RaisePropertyChanged(“name”); } } private global::System.String _name; } 在ViewModel中我有一个Person属性: private Model.Person person; […]

如何在Silverlight 4中等待状态转换完成?

我需要更改控件的状态然后执行一些操作。 具体来说,我想在隐藏控件之前运行动画。 我想做那样的事情: VisualStateManager.GoToState(control, “Hidden”, true); // wait until the transition animation is finished ParentControl.Children.Remove(control); 问题是过渡动画是异步运行的,因此在动画启动后立即从可视树中删除控件。 那么我该如何等待动画完成呢?

Ria Services将复杂对象作为参数传递给查询域服务方法

我遇到了与此线程中指定的问题类似的WCF RIA服务的一些困难。 我正在创建的域服务方法(Query方法)应该采用复杂的对象参数。 示例域服务方法: public ComplexObjectResult GetComplexObject(ComplexObjectParameter test) { //do stuff } 参数对象: public class ComplexObjectParameter { [Key] public decimal ID { get; set; } … other fields } 我得到此编译错误: 错误70域操作条目’GetComplexObject’的参数’test’必须是预定义的可序列化类型之一 。 在网上搜索了一下后,我发现了这个msdn线程 。 它声明这是RIA服务的限制,并且该线程没有指定任何体面的解决方法。 现在似乎有一些肮脏的解决方法: 更改复杂参数以键入字符串和序列化/反序列化参数对象我自己,我发现一个非常hacky解决方案。 在域服务方法上使用[Invoke]标签并放弃所有RIA跟踪function,我首先使用RIA。 是否有替代方案可以提供缺点较少的上述解决方案? 是否有人为此问题找到了更优雅的解决方法? 谢谢

防止只读文本框在Silverlight中变灰

在Silverlight中,如何使用IsReadOnly=”True”创建TextBox不会变灰。 我的应用程序的灰色效果看起来很糟糕,我想禁用它,或改变它的外观/颜色。

如何在代码中定义DataTemplate?

如何在代码中创建DataTemplate (使用C#),然后向该DataTemplate添加控件? 我正在使用Sivlerlight。

Windows Phone 7隐藏应用程序栏

我希望能够按一个按钮来禁用我的应用程序中的菜单栏。 如果你走的话 menubar.IsVisible = false; 它抛出一个空引用exception。 菜单栏在XAML中声明。 任何人都知道它是否可以像这样隐藏它?

从浏览器安装后启动Silverlight Out-of-Browser

我正在Silverlight 4 Beta中构建原型应用程序,我正在使用Out-of-Browser(OOB)function。 我需要OOBfunction才能访问本地文件系统,我想避免编写ActiveX组件或Java applet。 我需要能够在客户端计算机上安装后从浏览器启动OOB体验。 我似乎能够做的就是从浏览器中检测应用程序是否已安装,然后要求用户从桌面或开始菜单(作为普通应用程序)启动它。 然而,这“打破”了客户所需的体验,应该从浏览器引导。 有没有人能够直接从浏览器启动OOB应用程序? 谢谢, 马亭

将实例添加到MEF容器中

如何将已创建的实例添加到MEF容器/目录中以在解析Imports时使用。 我想要Unity在其容器上使用RegisterInstance方法提供的function。

RIA服务中的exception处理

如您所知,使用标准WCF服务的FaultException来建议处理exception以隐藏exception详细信息。 这没关系,但我遇到了WCF Ria服务的问题。 我想从域服务抛出exception,客户端将处理该exception。 我想避免泄露exception的敏感信息,如堆栈跟踪,方法名称等。如果它是标准的WCF服务,我会使用FaultExceptionexception,但在Ria服务中,它不起作用。 无论我从域服务抛出什么样的exception,客户端总是会得到DomainOperationException。 有没有办法可以从域服务向Silverlight客户端抛出FaultException(不透露实际的exception细节)? 例如,我有一个登录窗口。 当用户点击登录按钮时,应该有几个validation失败,例如: 用户名或密码无效 用户帐户已被锁定 该帐户未激活 等等 我希望每个可能发生的错误都有错误类型。 客户端应该检查出错的地方并相应地显示错误消息。 我禁用了customErrors但它没有帮助。 任何帮助,将不胜感激。 谢谢

使用AES / Rijndael在PHP中加密,在C#(WP7 / Silverlight)中解密

我在我的Android应用程序中使用PHP编写的REST服务没有太多麻烦。 现在我正试图在Windows Phone应用程序中使用它,我已经疯了! 到目前为止我所知道的: Silverlight只接受CBC模式下的Aes和PKCS7填充。 我得到的:“填充无效,无法删除”exception(参见底部的完整代码): plaintext = srDecrypt.ReadToEnd(); 如果我在C#中加密和解密,使用相同的配置,它工作正常。 当我尝试从PHP加密字符串中输入C#时,它会因上述错误而失败。 我的PHP脚本执行以下操作: function encrypt128($message) { $vector = “DB96A56CCA7A69FC”; $key = “6DBC44F54CA3CFDEDDCA140CA46A99C1”; // PHP md5 function leaves it in lower case, so I just copied the key from C# debug. //PKCS7 Padding $block = mcrypt_get_block_size(‘rijndael_128’, ‘cbc’); $pad = $block – (strlen($message) % $block); $message.= str_repeat(chr($pad), $pad); […]