Tag: silverlight 4.0

从代码中关闭Silverlight中的Out of Browser应用程序

如何以编程方式关闭Silverlight中的浏览器应用程序。 我想从基于某些条件的代码中引入与控制盒关闭相同的function。 我该如何实现它?

执行SQL查询WCF RIA Silverlight

我创建了一个数据库,将其与我的Silverlight应用程序中的DomainService相关联。 现在,我希望能够通过使用该服务执行某些操作,例如注册,登录等。 我怎么能这样做。 我有在服务中创建的预设方法,例如InsertUser,但它只需要一个参数,所以我不确定它是如何工作的。 在元数据中我有所有字段等。 有人可以帮我从这里出去吗。 谢谢。 public IQueryable GetUsers() { return this.ObjectContext.Users; } public void InsertUser(User user) { if ((user.EntityState != EntityState.Detached)) { this.ObjectContext.ObjectStateManager.ChangeObjectState(user, EntityState.Added); } else { this.ObjectContext.Users.AddObject(user); } } 对于检索我使用的用户(作为TBohnen.jnr代码的基础): UserContext _userContext = new UserContext(); public MainPage() { InitializeComponent(); LoadOperation loGetUsers = _userContext.Load(_userContext.GetUsersQuery()); loGetUsers.Completed += new EventHandler(loGetUsers_Completed); } void loGetUsers_Completed(object sender, EventArgs […]

绑定到另一个视图模型

我试图将可见性属性绑定到我在viewmodel( MainViewModel )中创建的函数,但我收到此错误: mscorlib.dll System.Windows.Data中出现类型’System.IO.FileNotFoundException’的第一次机会exception错误:BindingExpression路径错误:’Locator”System.String’上找不到’Main’属性(HashCode = -191326816) 。 BindingExpression:Path =’Main.TilesHomeViewVisible’DataItem =’Locator’(HashCode = -191326816); target元素是’myApp.Views.TilesHomeView’(Name =’myTilesHomeView’); target属性是’Visibility’(类型’System.Windows.Visibility’).. 根据我从错误中理解,它正在TilesHomeViewVisible寻找TilesHomeViewVisible函数,而它实际上是在MainViewModel 。 在绑定表达式中,我如何定位MainViewModel呢? 编辑:我有一个’ViewModelLocator’集成。 这是我的ViewModelLocator: … public ViewModelLocator() { ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); } public MainViewModel Main { get { return ServiceLocator.Current.GetInstance(); } } public TilesHomeViewModel TilesVM { get { return ServiceLocator.Current.GetInstance(); } } … 我的App.xaml: 在我的MainPage.xaml和链接到定位器的地方,我有: … […]

Silverlight MVVM混淆:基于状态更新图像

我正在开发一个Silverlight应用程序,我试图坚持MVVM主体,但是我遇到了一些问题,根据ViewModel中属性的状态更改了图像的来源。 出于所有意图和目的,您可以将我正在实现的function视为音频应用的播放/暂停按钮。 当处于“播放”模式时,ViewModel中的IsActive为true,并且应显示按钮上的“Pause.png”图像。 暂停时,ViewModel中的IsActive为false,按钮上显示“Play.png”。 当然,当鼠标hover在按钮上时,还有两个额外的图像可以处理。 我以为我可以使用样式触发器 ,但显然它们在Silverlight中不受支持。 我一直在审查一个论坛post,其中有一个类似于我的问题,建议使用VisualStateManager 。 虽然这可能有助于更改hover/正常状态的图像,但缺少(或者我不理解)的部分是通过视图模型设置状态的方式。 该post似乎仅适用于事件而不是视图模型的属性。 话虽如此,我也没有成功完成正常/hover的影响。 下面是我的Silverlight 4 XAML。 还应该注意我正在使用MVVM Light。 使用视图模型确定的状态更新按钮上的图像的正确方法是什么?

Rx:忽略订阅者导致的更新

我在弄清楚如何做到这一点时遇到了问题。 我有两个实现INotifyPropertyChanged实例(源和目标),我正在跟踪两者的PropertyChanged事件。 我想要做的是在任何时候运行一个动作source.PropertyChanged ,直到target.PropertyChanged被引发。 我可以这样做,就像这样: INotifyPropertyChanged source; INotifyPropertyChanged target; var sourcePropertyChanged = Observable .FromEvent(source, “PropertyChanged”) .Where(x => x.EventArgs.PropertyName == sourcePropertyName); var targetPropertyChanged = Observable .FromEvent(target, “PropertyChanged”) .Where(x => x.EventArgs.PropertyName == targetPropertyName); sourcePropertyChanged .TakeUntil(targetPropertyChanged) .ObserveOnDispatcher() .Subscribe(_ => /*Raises target.PropertyChanged for targetPropertyName*/); 我遇到的问题是我想忽略由操作引起的PropertyChanged通知,并且只有在外部源引发PropertyChanged事件时才停止获取值。 是否有一种很好的方法可以实现这一目标?

如何在SilverLight中组合一些UserControl?

也许这是一个简单的问题,但我找不到答案。 我有三个用户控件,只有颜色不同。 其中有一个代码: 如何将它们组合成ObservableCollection Children? public class NodeViewModel : INotifyPropertyChanged { public ObservableCollection Children { get { return _children; } set { _children = value; NotifyChange(“Children”); } } private void NotifyChange(string propName) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propName)); } } 我如何使用此控件集合的then元素? 这样做有简单(或正确的方法)吗?

Silverlight 4获得完全例外

我有一个部署在我公司的Silverlight应用程序提升信任和一些错误我得到“调试资源字符串不可用”我想知道目前是否有任何方式Silverlight 4获取完整的错误消息而不安装开发人员版本的silverlight on每台机器。 提前致谢

循环遍历Silverlight DataGrid中的行

我有一种感觉,我在这里遗漏了一些明显的东西,但我无法找到迭代DataGrids DataGridRow集合的方法。 我有一个网格,其中包含我的类集合的itemssource。 我试图遍历行并突出显示符合某种条件的任何行,但不能为我的生活看到如何。

使用Silverlight 4中的ComAutomationFactory迭代Word文档字段

更新 :这是Silverlight 4测试版中确认的错误。 http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=523052 我通过切换到完整的WPF应用程序并使用常规的旧Microsoft.Office.Interop.Word解决了这个问题。 但我仍然对使用ComAutomationFactory的动态值如何使其工作非常感兴趣。 这可能更像是一个C#4.0问题,但我想要做的是利用受信任的SL4应用程序中的ComAutomationFactory类来加载Word文档,更改一些文本并打印它。 使用常规的Windows应用程序,非常简单: Object oMissing = System.Reflection.Missing.Value; Object oTrue = true; Object oFalse = false; Application oWord = new Application(); Document oWordDoc = new Document(); oWord.Visible = false; object oTemplatePath = “C:\\Users\\jwest\\Desktop\\DocumentTemplate.dotx”; oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing); foreach (Field myMergeField in oWordDoc.Fields) 但是,在SL4中,您必须使用dynamic关键字。 它工作正常,直到我尝试迭代我的字段: Object […]

如何将Filter应用于PagedCollectionView但阻止CollectionChanged事件在编辑时触发?

我有一个Silverlight应用程序,其中DataForm绑定在包含实现IEditableObject对象的PagedCollectionView 。 每当用户使用DataForm编辑对象时, CollectionChanged上的CollectionChanged事件将触发两次,首先是“ 删除”操作,然后是“ 添加”操作。 这不是我想要的。 我只想编辑集合中的对象而不触发CollectionChanged事件。 当我尝试在一个简单的测试应用程序中重现此问题时,它的行为与我想要的一样(即不触发事件),我无法弄清楚导致我的主应用程序和测试应用程序之间的行为差​​异的原因。 有谁知道DataForm何时决定更改集合,而不是简单地编辑对象? 是什么导致这种差异? 更新 这些 文章让我想到了filter,事实certificate, 将一个filter应用于 PagedCollectionView会产生不同。 使用filter:用户的编辑操作会导致从集合中删除/添加,不带filter:没有集合更改,只需编辑对象。 所以现在的问题是:为什么filter会导致删除/添加行为(即使filter只是’返回true’,即允许集合中的所有条目)以及如何防止这种情况?