Попробуйте это ..
Добавить EventSetter на CellStyle:
<DataGrid.CellStyle>
<Style>
<EventSetter Event="DataGridCell.MouseLeftButtonDown"
Handler="CellClicked" />
</Style>
</DataGrid.CellStyle>
в код оных Обработчик:
private void CellClicked(object sender, MouseButtonEventArgs e)
{
String cellContent = ((TextBlock)sender).Text;
xamlAllocateAudit window = new xamlAllocateAudit
{
DataContext = cellContent
}
window.Show();
}
Работает на моем конце. Первый щелчок выбирает ячейку, второй щелчок запускает обработчик, который открывается в новом окне.
Если вы хотите, чтобы то же окно обновлялось, а затем сохраняйте ссылку на окно, если оно существует, обновите его datacontext.
На Отер стороне в xamlAllocateAudit, создать обработчик для события "DataContextChanged":
<Window x:Class="WpfApplication3.xamlAllocateAudit"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DetailsWindow" Height="300" Width="300"
DataContextChanged="Window_DataContextChanged">
<!-- Some graphics -->
</Window>
И в CodeBehind:
private void Window_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
var newDataContext = e.NewValue;
//do stuff with DataContext
}
Ура !!
Что вы * вы * пробовали до сих пор? – Sheridan
@Sheridan Извините за поздний ответ, я попробовал событие click, а также попробовал метод Monika, однако я хочу, чтобы он ссылался на другое окно с именем xamlAllocateAudit в том же приложении, но я не знаю, как это сделать. Любая помощь, пожалуйста? –
В своем вопросе, пожалуйста, покажите, как вы заполнили данные в своем «DataGrid». – Sheridan