【问题标题】:Binding Listview SelectedItems for Actions为操作绑定 Listview SelectedItems
【发布时间】:2016-04-07 11:43:02
【问题描述】:

我正在努力将 2 个列表视图选定项绑定到我的视图模型。
这个想法是有一个视图,其中包含 2 个列表视图和 2 个按钮,以将
(多个)选定项目从 1 个列表视图移动到另一个(2 路)。

观点:

<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>

相关的视图模型属性:

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

我要实现的代码:

public void AddSelectedResources(IEnumerable<DuamResourceInfo> resources)
{

}

public void RemoveSelectedResources(IEnumerable<DuamResourceInfo> resources)
{

}

我将 Caliburn Micro 用于 MVVM。我知道有一些绑定约定,但我不确定它们是否适用于这种情况。

非常感谢任何帮助!

【问题讨论】:

    标签: c# wpf mvvm data-binding caliburn.micro


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      • 2015-07-24
      • 2013-08-18
      • 2014-12-08
      相关资源
      最近更新 更多