2014-03-13 97 views
0

所以在我的WPF我启用了一个右键单击功能。如果数据网格中的人员被右键点击,那么你可以选择email,它会通过电子邮件发送该人。但现在我想通过提供Multiple select选项来改善这一点。我想知道我的绑定有什么问题,或者我正在采用错误的绑定方法。绑定Selecteditems Datagrid

码单/的SelectedItem

public void SendEmail() 
{ 
    var vm = new EmailViewModel(Events); 
    vm.ByIt(SelectedItem.Id); 
    } 
} 

XAML的一面:绑定的SelectedItem

<telerik:RadGridView ItemsSource="{Binding Items, IsAsync=True}" SelectedItem="{Binding SelectedItem}"> 
<telerik:RadGridView.ContextMenu> 
    <ContextMenu> 
      <MenuItem Header="Email" cal:Message.Attach="[Click] = [SendEmail()]"/> 
    </ContextMenu> 
</telerik:RadGridView.ContextMenu> 

其中一期工程! 这是我的尝试下面Upgrade到多选择绑定

<telerik:RadGridView.ItemContainerStyle> 
     <Style TargetType="{x:Type telerik:GridViewRow}"> 
      <Setter Property="IsSelected" Value="{Binding Mode=OneWayToSource, Path=SelectYN}"></Setter> 
     </Style> 
</telerik:RadGridView.ItemContainerStyle> 

private BindableCollection<PersonDTO> selectYN; 
public BindableCollection<PersonDTO> SelectYN 
{ 
    get { return selectYN; } 
    set 
    { 
     if (value != selectYN) 
     { 
      selectYN = value; 
      NotifyOfPropertyChange(() => SelectYN); 
     } 
    } 
} 

public void SendEmail() 
{ 
    foreach (PersonDTO value in SelectYN) 
    { 
     var vm = new EmailViewModel(Events); 
     vm.ById(value.Id); 
     Events.PublishOnUIThread(new ShowTabEvent(vm)); 
    } 
} 

回答

0

假设你RadGridViewListView里面,那么你就需要一个IList属性数据绑定到ListView.SelectedItems财产。

private IList selectYN; 
public IList SelectYN 
{ 
    get { return selectYN; } 
    set 
    { 
     if (value != selectYN) 
     { 
      selectYN = value; 
      NotifyOfPropertyChange(() => SelectYN); 
     } 
    } 
} 

...

<ListView ItemSource="{Binding Items}" SelectedItems="{Binding SelectYN}" ... /> 
+0

对不起不使用列表视图:■ – Master