powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WPF (Culiburn.Micro) DataGrid создать ContexMenu and Event
1 сообщений из 1, страница 1 из 1
WPF (Culiburn.Micro) DataGrid создать ContexMenu and Event
    #38404971
bdm77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Существует DataGrid мне нужно добавить фитчер, по правой кнопки взывалась ContextMenu я выбираю из меню ф-цию и срабатывает событие. Но это в теории.

Имеем следующее: WPF Culiburn.Micro DataGrid

/* TableView.xaml */

<UserControl x:Class="Simlat.COSMOS.ManagerStation.ProjectTableView"
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:s="clr-namespace:System;assembly=mscorlib"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
mc:Ignorable="d"
d:DesignHeight="500" d:DesignWidth="1200" Background="{StaticResource DarkCanvas}" x:Name="Wizard">

<DockPanel HorizontalAlignment="Center">
<DataGrid DockPanel.Dock="Top" x:Name="ProjectTable" Margin="5,5,5,5" ItemsSource="{Binding ItemList}" >
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="Open Project Folder" cal:Message.Attach="[Event Click] = [Action ClickedFolder($dataContext)]"/>
</ContextMenu>
</DataGrid.ContextMenu>


<DataGrid.Columns>
<DataGridTextColumn Width="Auto" Header="#" Binding="{Binding Path=Number}" CanUserSort="True"/>
<DataGrid.Columns>

<DataGridTemplateColumn Width="Auto" Header="Project Folder">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DataTemplate.Resources>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource BlueButton}">
<Setter Property="Margin" Value="5"/>
</Style>
</DataTemplate.Resources>
<Button Content="Open Folder" cal:Message.Attach="[Event Click] = [Action ClickedFolder($dataContext)]" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid>
</DockPanel>
</UserControl >


/* TableViewModel.cs */
public class ProjectTableViewModel : Screen
{
public class ProjectTableTableItem
{
public uint Number { get; private set; }
public IProjectData ProjectData { get; private set; }
public string ProgressString { get { return String.Format("{0}/{1}", ProjectData.CompletionStage, ProjectData.TotalStagesForProject); } }
public bool IsPacked { get; set; }

public ProjectTableTableItem(uint number, IProjectData data)
{
Number = number;
ProjectData = data;
}
}



public void OnOpenProjectClickedFolder(ProjectTableViewModel.ProjectTableTableItem p)
{
var dialog = new System.Windows.Forms.FolderBrowserDialog();
dialog.SelectedPath = "C:\\";
if (p != null)
{
dialog.SelectedPath = p.ProjectData.ProjectDir + "\\";
}
else
{
MessageBox.Show("I don't know path");
return;
}

dialog.ShowDialog();

}
}

/*=============================*/

Если вызвать событие через Button то все работает, если через ContexMenu, метод вызывается, но параметр равен "null"

Может кто то сталкивался. Спасибо.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WPF (Culiburn.Micro) DataGrid создать ContexMenu and Event
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]