C# 绑定Listview SelectedItems以执行操作

C# 绑定Listview SelectedItems以执行操作,c#,wpf,mvvm,data-binding,caliburn.micro,C#,Wpf,Mvvm,Data Binding,Caliburn.micro,我正在努力将2个ListView所选项目绑定到我的viewmodel。 其思想是在视图之间有两个listview和两个按钮,以将(多个)选定项从一个listview移动到另一个listview(双向) 观点: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/>

我正在努力将2个ListView所选项目绑定到我的viewmodel。
其思想是在视图之间有两个listview和两个按钮,以将
(多个)选定项从一个listview移动到另一个listview(双向)

观点:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <ListView x:Name="DuamResources" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Id" DisplayMemberBinding="{Binding Id}"/>
                <GridViewColumn Header="Description" DisplayMemberBinding="{Binding Name}"/>
            </GridView>
        </ListView.View>
        <ListView.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <TextBlock FontWeight="Bold" FontSize="14" Text="{Binding Name}"/>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
            </GroupStyle>
        </ListView.GroupStyle>
    </ListView>
    <StackPanel Grid.Column="1" Orientation="Vertical" cal:Action.TargetWithoutContext="{Binding SelectedDuamResources}" VerticalAlignment="Center">
        <Button Content="&lt;" Width="40" Margin="5" cal:Message.Attach="AddSelectedResources($datacontext)"/>
        <Button Content="&gt;" Width="40" Margin="5"/>
    </StackPanel>
    <ListView x:Name="AvailableDuamResources" Grid.Column="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Id" DisplayMemberBinding="{Binding Id}"/>
                <GridViewColumn Header="Description" DisplayMemberBinding="{Binding Name}"/>
            </GridView>
        </ListView.View>
        <ListView.GroupStyle>
            <GroupStyle HidesIfEmpty="True">
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <TextBlock FontWeight="Bold" FontSize="14" Text="{Binding Type}"/>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
            </GroupStyle>
        </ListView.GroupStyle>
    </ListView>
</Grid>

关联的viewmodel属性:

private ObservableCollection<DuamResourceInfo> availableDuamResources;
        public ObservableCollection<DuamResourceInfo> AvailableDuamResources
        {
            get { return availableDuamResources; }
            set { availableDuamResources = value; NotifyOfPropertyChange(() => AvailableDuamResources); }
        }

        private ObservableCollection<DuamResourceInfo> selectedDuamResources;
        public ObservableCollection<DuamResourceInfo> SelectedDuamResources
        {
            get { return selectedDuamResources; }
            set { selectedDuamResources = value; NotifyOfPropertyChange(() => SelectedDuamResources); }
        }

        private ObservableCollection<DuamResourceInfo> duamResources;
        public ObservableCollection<DuamResourceInfo> DuamResources
        {
            get { return duamResources; }
            set { duamResources = value; NotifyOfPropertyChange(() => DuamResources); }
        }
private observetecollection availableDuamResources;
公共可观测集合可用AMResources
{
获取{return availableDuamResources;}
设置{availableDuamResources=value;NotifyOfPropertyChange(()=>availableDuamResources);}
}
私有可观测集合选择的数据源;
公共可观测集合选择的数据源
{
获取{return selectedDuamResources;}
设置{selectedDuamResources=value;NotifyOfPropertyChange(()=>selectedDuamResources);}
}
私人可观测收集数据资源;
公共可观测收集数据资源
{
获取{return duamResources;}
设置{duamResources=value;NotifyOfPropertyChange(()=>duamResources);}
}
我想要实现的代码:

public void AddSelectedResources(IEnumerable<DuamResourceInfo> resources)
{

}

public void RemoveSelectedResources(IEnumerable<DuamResourceInfo> resources)
{

}
public void AddSelectedResources(IEnumerable资源)
{
}
public void移除选定资源(IEnumerable resources)
{
}
我正在为MVVM使用Caliburn Micro。我知道有一些绑定约定,但我不确定它们是否适用于此场景

非常感谢您的帮助

您是否尝试过使用“x:Bind”而不是“Binding”?由于某种原因,在过去,一个或另一个对我有效,但不是两个都有效,这取决于具体情况。

您是否尝试过使用“x:Bind”而不是“Binding”?由于某种原因,在过去,其中一个对我有效,但不是两个都有效,这取决于具体情况