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);
        }
Ejemplo n.º 2
0
        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;
                }
            }
        }
Ejemplo n.º 3
0
        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;
            }
        }