У меня есть сетка данных с источником элемента, связанным с данными из базы данных. У него есть два шаблона данных с ограниченным значением с помощью преобразователя значений. (Я преобразовал идентификатор сотрудника (столбец frow1) в путь изображения с помощью преобразователя). Теперь я хочу показатьидентификатор сотрудника, когда пользователь дважды щелкает по ячейке с изображением. Когда я успешно запустил таблицу данных приложения, заполненную изображениями сотрудника.
До сих пор я пытался, как показано ниже, используя DataGridCellInfo, как показано в приведенном ниже коде.. Я установил CurrentCell = "{Binding CellInfo, Mode = TwoWay}" в сетке данных xamal. Здесь CellInfo является общедоступным свойством
<DataGrid x:Name="dtGrid" AutoGenerateColumns="False"
Margin="0,0,0,0" SelectionUnit="Cell"
HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"
SelectionMode="Single"
CurrentCell="{Binding CellInfo, Mode=OneWayToSource}"
VerticalAlignment="Top" RowHeight="50" ColumnWidth="50"
AlternatingRowBackground="{x:Null}" AlternationCount="2"
CanUserResizeRows="False" CanUserAddRows="False" CanUserDeleteRows="False"
CanUserReorderColumns="False" CanUserResizeColumns="False"
CanUserSortColumns="False" HeadersVisibility="None"
GridLinesVisibility="None" HorizontalGridLinesBrush="{x:Null}"
VerticalGridLinesBrush="{x:Null}" >
<DataGrid.Columns>
<DataGridTemplateColumn Width="SizeToCells" IsReadOnly="True" > <DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<Button Background="#FF1D5BBA"
PreviewMouseDoubleClick="Button_PreviewMouseDoubleClick" >
<Image Source="{Binding Path=frow1,
Converter=StaticResource
prfileconverter},
Mode=Default}" />
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Мой код:
private void Button_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
MessageBox.Show(CellInfo.ToString())
}
private DataGridCellInfo _cellInfo;
public DataGridCellInfo CellInfo
{
get {
return _cellInfo;
}
set
{
_cellInfo = value;
OnPropertyChanged("CellInfo");
//this is to refresh through INotifyPropertyChanged
}
}
Здесь яя застрял с тем, как показать идентификатор сотрудника, когда я делаю MouseDoubleClick на ячейку. Когда я дважды щелкаю по ячейке, я получаю окно сообщения, говорящее «System.Windows.Control.DataGridCellInfo». Я не получаю элемент ячейки (идентификатор сотрудника)