gpt4 book ai didi

c# - 从 View 模型中获取列表中的选定项

转载 作者:行者123 更新时间:2023-11-30 22:31:11 25 4
gpt4 key购买 nike

早上好!

我正在编写一个管理应用程序,它使用 WPF 和 MVVM 模式显示任务列表。用户也可以编辑此列表,但我想使用删除按钮删除选定的行。问题是我不知道如何从 ModelView 访问选定的行,我不想使用代码隐藏。我想最好的选择是使用一些绑定(bind),但我不确定该怎么做。

这是代码(我使用的是 DevXpress 控件,但几乎相同)

<dxg:GridControl  ItemsSource="{Binding Path=TaskView}" Loaded="GridControl_Loaded">
<dxg:GridControl.Columns>
<dxg:GridColumn Visible="False" DisplayMemberBinding="{Binding Path=ID, Mode=OneWay}" />
<dxg:GridColumn Header="Project" DisplayMemberBinding="{Binding Path=ProjectCode, Mode=TwoWay}" AllowEditing="True" ContentChanged="OnHoursChanged"/>
<dxg:GridColumn Header="Project Description" DisplayMemberBinding="{Binding Path=ProjectName, Mode=TwoWay}" AllowEditing="False"/>
<dxg:GridColumn Header="Description" DisplayMemberBinding="{Binding Path=ProjectDescription, Mode=TwoWay}" AllowEditing="True"/>
<dxg:GridColumn Header="Comment" DisplayMemberBinding="{Binding Path=Comment, Mode=TwoWay}" AllowEditing="True"/>
<dxg:GridColumn Header="{Binding ElementName=mon,Path=Text}" DisplayMemberBinding="{Binding Path=HoursMonday, Mode=TwoWay}" AllowEditing="True" FieldName="M" />
<dxg:GridColumn Header="{Binding ElementName=tue,Path=Text}" DisplayMemberBinding="{Binding Path=HoursTuesday, Mode=TwoWay}" AllowEditing="True" FieldName="T" />
<dxg:GridColumn Header="{Binding ElementName=wed,Path=Text}" DisplayMemberBinding="{Binding Path=HoursWednesday, Mode=TwoWay}" AllowEditing="True" FieldName="W" />
<dxg:GridColumn Header="{Binding ElementName=thu,Path=Text}" DisplayMemberBinding="{Binding Path=HoursThursday, Mode=TwoWay}" AllowEditing="True" FieldName="Th" />
<dxg:GridColumn Header="{Binding ElementName=fri,Path=Text}" DisplayMemberBinding="{Binding Path=HoursFriday, Mode=TwoWay}" AllowEditing="True" FieldName="F" />
<dxg:GridColumn Header="{Binding ElementName=sat,Path=Text}" DisplayMemberBinding="{Binding Path=HoursSaturday, Mode=TwoWay}" AllowEditing="True" FieldName="Sat" />
<dxg:GridColumn Header="{Binding ElementName=sun,Path=Text}" DisplayMemberBinding="{Binding Path=HoursSunday, Mode=TwoWay}" AllowEditing="True" FieldName="Sun" />
<dxg:GridColumn Header="Total" DisplayMemberBinding="{Binding Path=Total, Mode=OneWay}" AllowEditing="False" FieldName="Tot" />
</dxg:GridControl.Columns>
</dxg:GridControl>

你有什么想法吗?

非常感谢!

最佳答案

您的 VM 应该有一个 Project SelectedProject { get;放; 属性。

将 Grid 中的 SelectedRow(或其他东西)装箱到它:

ItemsSource="{Binding Path=TaskView}" SelectedItem="{Binding Path=SelectedProject}"

关于c# - 从 View 模型中获取列表中的选定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9375236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com