我不懂DataSource和DataContextProxy

时间:2012-11-19 14:45:30

标签: c# xaml silverlight-5.0

我正在尝试创建一个上下文菜单,我已经在我的XAML中有工作按钮,虽然我不知道如何将它转换为C#来创建我的上下文菜单。我不明白DataSource和DataContextProxy是如何工作的,这是我正在使用的一段代码,

<sr:Button Text="Deactivate" Size="Medium" SmallImage="/Fsc.Feenics.Clients.Silverlight2;component/Images/16/deactivate.png" Command="{Binding Path=DataSource.DeactivateCardCommand, Source={StaticResource DataContextProxy}}" CommandParameter="{Binding}" Visibility="{Binding Active, Converter={StaticResource VisibleIfTrue}}" />

这是我尝试将其翻译为C#以获取我的上下文菜单

  contextMenu.Items.Add(new MenuItem { Header = "Deactivate", Command = new RelayCommand<Guid>((x) => localContext.DeactivateCard(x)), CommandParameter = objectInfo.Id });

我不确定将DataSource / DataContextProxy放在我的C#中的哪个位置,如果有人能给我任何建议或解释它是如何工作的,那将会非常适合,

1 个答案:

答案 0 :(得分:0)

我不确定你是否理解xaml,所以我将从头开始解释...

你的button命令绑定到一个StaticResource类对象,该对象有一个x:key&#34; DataConextProxy&#34;。

该对象是一个公开属性的类:DataSource

该DataSource对象是一个公开Command:DeactivateCardCommand

的类

从DataContextProxy的名称,我将假设约为this

基本上只需在命令上使用相同的绑定创建菜单项,相同的绑定路径就可以了......