public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { try { RowDataHolder dh = value as RowDataHolder; if (dh == null || dh.Data == null) { return(string.Empty); } PropertyInfo propInfo = parameter as PropertyInfo; if (propInfo == null) { return(string.Empty); } object dv = propInfo.GetValue(dh.Data); if (dv == null) { return(string.Empty); } string text = string.Empty; var propertyType = propInfo.PropertyType; if (propertyType.IsValueType) { text = dv.ToString(); } else if (propertyType == typeof(string)) { text = dv as string; if (text != null) { // Check if text contains new line and trim. var newLine1Index = text.IndexOf('\r'); var newLine2Index = text.IndexOf('\n'); if (newLine1Index != -1 || newLine2Index != -1) { text = text.Remove(newLine1Index != -1 ? newLine1Index : newLine2Index); } } } else { // Not a value type or a string. Show the name of the property in curly braces. text = $"{{{propInfo.Name}}}"; } return(text); } catch (Exception ex) { var s = ex.ToString(); } return(string.Empty); }
private void REPropertiesDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { var vm = (this.DataContext as ObjectListViewModel); if (vm != null) { RowDataHolder rowDataHolder = this.REPropertiesDataGrid.SelectedItem as RowDataHolder; if (rowDataHolder != null) { vm.SelectedItem = rowDataHolder.Data; } } }
private void REPropertiesDataGrid_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e) { var vm = (this.DataContext as ObjectListViewModel); if (vm == null) { return; } var selectedCells = this.REPropertiesDataGrid.SelectedCells; if (selectedCells == null || selectedCells.Count == 0) { vm.SelectedItem = null; } var selectedItem = selectedCells[0].Item; RowDataHolder rowDataHolder = selectedItem as RowDataHolder; if (rowDataHolder != null) { vm.SelectedItem = rowDataHolder.Data; } }