繁体   English   中英

绑定选择项数据网格

[英]Binding Selecteditems Datagrid

因此,在WPF上,我启用了右键单击功能。 如果右键单击数据网格中的人员,则可以选择email ,它将通过电子邮件发送该人员。 但是,现在我想通过提供Multiple select选项来改进它。 我想知道我的装订有什么问题还是我采用了错误的装订方法。

Single / 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));
    }
}

假设您的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}" ... />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM