файл xaml главного окна
<Window x:Class="Master_page.frametesting"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Master_page"
mc:Ignorable="d"
Title="frametesting" Height="550" Width="1001">
<DockPanel >
<Frame x:Name="Mainframe" Navigated="Mainframe_Navigated">
</Frame>
</DockPanel>
файл xaml.cs главного окна
namespace Master_page
{
public partial class frametesting : Window
{
public frametesting()
{
InitializeComponent();
Mainframe.Content = new gridviewpage();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Mainframe.Content = new viewDetailPage();
}
xaml-файл для сетки данных
<DataGrid x:Name="g1" ItemsSource="{Binding lstTable3}" SelectionMode="Single" SelectionUnit="FullRow" HorizontalAlignment="Stretch" materialDesign:DataGridAssist.CellPadding="7,3,3,3" MinHeight="404" VerticalAlignment="Stretch" Margin="15,0,10,0" AutoGenerateColumns="False" CanUserDeleteRows="True" CanUserAddRows="false" MinWidth="625" >
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="#f5f5f5"/>
<Setter Property="Height" Value="30"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="Padding" Value="6"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="Foreground" Value="Black"/>
</Style>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="Background" Value="#ffffff"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Width="1*" Header="S.No" />
<DataGridTextColumn Binding="{Binding Id}" Width="1*" Header="S.No" />
<DataGridTextColumn Binding="{Binding Title}" Width="2*" Header="Title"/>
<DataGridTextColumn Binding="{Binding o_rder}" Width="1*" Header="Order"/>
<DataGridTextColumn Binding="{Binding Is_Active}" Width="1*" Header="Is Active"/>
<DataGridTextColumn Binding="{Binding Created_on}" Width="2*" Header="Created On"/>
<DataGridTemplateColumn Width="3*" Header="Action">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel >
<Button Style="{StaticResource MaterialDesignFlatButton}" MinWidth="60" Content="view" Command="{Binding DataContext.ViewCommand,RelativeSource={RelativeSource AncestorType=DataGrid}}" CommandParameter="{Binding Id}" Click="Button_Click" >
</Button>
<Button Style="{StaticResource MaterialDesignFlatButton}" MinWidth="60" Content="delete" Command="{Binding DataContext.DeleteCommand,RelativeSource={RelativeSource AncestorType=DataGrid}}" CommandParameter="{Binding Id}" >
</Button>
<Button Style="{StaticResource MaterialDesignFlatButton}" MinWidth="60" Content="check" Command="{Binding DataContext.CheckCommand,RelativeSource={RelativeSource AncestorType=DataGrid}}" CommandParameter="{Binding Id }" >
</Button>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
xaml.cs файл для сетки данных
public partial class gridviewpage : Page
{
model_view model = new model_view();
public gridviewpage()
{
InitializeComponent();
this.DataContext = model;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
this.NavigationService.Navigate(new viewDetailPage());
}
}
просмотр модели
public ICommand ViewCommand
{
get
{
if (_viewcommand == null)
{
_viewcommand = new Relaycommand(param => this.view(param));
}
return _viewcommand;
}
}
public object NavigationService { get; set; }
public void view(object y)
{
//SerialNo();
string Id = y.ToString();
int id = int.Parse(Id);
using (var db = new deepakEntities())
{
Table_3 tbl = new Table_3();
bool flag = db.Table_3.Where(x => x.Id == id).Any();
tbl = db.Table_3.Where(x => x.Id == id).First();
this.Title = tbl.Title;
this.IsActive = tbl.Is_Active;
this.CreatedOn = tbl.Created_on;
this.Order = tbl.o_rder;
//viewWindow ob = new viewWindow(id, Title, IsActive, CreatedOn, Order);
//ob.ShowDialog()
}
}
xaml файл для просмотра
<Page x:Class="Master_page.viewPages.viewDetailPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Master_page.viewPages"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"
Title="viewDetailPage">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="2*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="2*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="2*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label x:Name="lblTitle" Content="{Binding Title, NotifyOnTargetUpdated=True }" Grid.Row="1" Grid.Column="2" ></Label>
<Label x:Name="lblIsActive" Grid.Row="2" Grid.Column="2" ></Label>
<Label x:Name="lblorder" Grid.Row="3" Grid.Column="2" ></Label>
<Label x:Name="lblcreateon" Grid.Row="4" Grid.Column="2" ></Label>
<Label Content="Title" Grid.Row="1" Grid.Column="1"/>
<Label Content="Is Active" Grid.Row="2" Grid.Column="1"/>
<Label Content="Order" Grid.Row="3" Grid.Column="1"/>
<Label Content="Created on" Grid.Row="4" Grid.Column="1"/>
<Button Content="Go Back" Grid.Column="2" Grid.Row="5" />
</Grid>
xaml. CS файл для просмотра страницы
public partial class viewDetailPage : Page
{
model_view model = new model_view();
public viewDetailPage()
{
InitializeComponent();
this.DataContext = model;
lblTitle.Content += model.Title;
lblIsActive.Content += model.IsActive;
lblorder.Content += model.Order;
lblcreateon.Content += model.CreatedOn;
}
}
Я создал главное окно и две страницы, одна для сетки данных, а другая для отображения выбранных данных строки в метке. я пытался показать данные, не создавая объект страницы окна на странице ViewModel. но не мог передать данные без создания объекта страницы окна. Все, что я хочу - это нажать на кнопку просмотра, она переключает страницу и показывает выбранные данные строки на этой странице. Пожалуйста, помогите