gpt4 book ai didi

c# - 单击 DataGrid 元素打开新 View (WPF xaml 应用程序)

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:00 25 4
gpt4 key购买 nike

我有使用 MVVM 架构编写的 WPF 应用程序,所以我有模型、 View 和 View 模型。我的 View 中有一个 DataGrid,其中包含 Product 的列表(其中包含多个字段:名称、余额等)。

我想添加额外的窗口/ View ,点击 DataGrid 中的元素后会出现。是否可以?如果是,怎么办?

我对 xaml 代码很感兴趣,而不是像 button1_Click 这样的东西。

这就是我现在所拥有的:

<Window ...
Height="600" Width="800"
WindowState="Maximized">
<Grid>
<DataGrid AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserResizeRows="False"
IsReadOnly="True"
SelectionMode="Single"
SelectionUnit="FullRow"
ItemsSource="{Binding Path=Products}"
SelectedItem="{Binding Path=CurrentProduct, Mode=TwoWay}"
>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=ProductName}"
Header="Product Name"
Width="*" />
<DataGridTextColumn Binding="{Binding Path=Balance}"
Header="Balance"
Width="Auto" />
...
</DataGrid.Columns>
</DataGrid>
</Grid>

最佳答案

当您右键单击数据网格的某个元素时,这将触发一个命令:

<DataGrid.InputBindings>
<MouseBinding
MouseAction="RightClick"
Command="{Binding yourCommand,Mode=OneWay}"
/>
</DataGrid.InputBindings>

运行新 View :

var win = new Window();
win.Content = new yourNewViewModel();
win.SizeToContent = SizeToContent.WidthAndHeight; //Adjust window size to content
win.Show();

您必须在 App.xaml 中将 yourNewViewModel 与 yourNewView 链接起来:

<DataTemplate DataType="{x:Type yourProjectViewModel:yourNewViewModel}">
<local:yourNewView/>
</DataTemplate>

不要忘记将您的 ProjectViewModel 的 xmlns 添加到您的 App.xaml

关于c# - 单击 DataGrid 元素打开新 View (WPF xaml 应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33009072/

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