Search This Blog

Tuesday, July 5, 2016

WPF DependencyProperty Register Default Value

WPF > DependencyPropertyRegister > Default Value



public static readonly DependencyProperty
UpdateSourceTriggerProperty = DependencyProperty.Register("UpdateSourceTrigger", typeof(UpdateSourceTrigger),
typeof(TextBox),
new FrameworkPropertyMetadata(UpdateSourceTrigger.LostFocus)); // add your default value here


Wednesday, June 8, 2016

WPF Validation remove red border on error

WPF  > Validation > Remove red border on error


Validation.ErrorTemplate="{x:Null}


Tuesday, June 7, 2016

Clear Validation Error On TextBox TextChanged event WPF

WPF > Validation > ClearInvalid

Removes all ValidationError objects from the specified BindingExpression object.

Example


this.TextChanged += TextBox_TextChanged;

void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
     Validation.ClearInvalid(((TextBox)sender).GetBindingExpression(TextBox.TextProperty));
}


Friday, June 3, 2016

DataGrid WPF show row number

WPF > Controls > ItemsControl > DataGrid > Show row number

XAML


<DataGrid 
        x:Name="dataGrid"
        LoadingRow="dataGrid_LoadingRow"

Code

private void dataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
  // show row number
    e.Row.Header = (e.Row.GetIndex() + 1).ToString();

}

Monday, May 23, 2016

DataGridRow change color of selected row

WPF > DataGrid Color of selected row


  <DataGrid.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#FFB8AEAE"/>
  </DataGrid.Resources>


Last column width in WPF datagrid to take all the left space

WPF > DataGrid > Last column width


XAML

<DataGridTemplateColumn Header="Range" Width="100'*">

Or Code behind:

 // make the last column in WPF data grid take all the left space, always

dataGrid.Columns[dataGrid.Columns.Count - 1].Width = new DataGridLength(1, DataGridLengthUnitType.Star);


Friday, May 20, 2016

WPF datagrid edit cell on single click

WPF > DataGrid > Edit cell on single click

<Window.Resources>
        <Style TargetType="{x:Type DataGridCell}">
            <EventSetter Event="PreviewMouseLeftButtonDown"    Handler="DataGridCell_PreviewMouseLeftButtonDown" />
        </Style>
    </Window.Resources>

private void DataGridCell_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    DataGridCell cell = sender as DataGridCell;
    EditCell(cell, e);
}

private void EditCell(DataGridCell cell, RoutedEventArgs e)
{
    if (cell == null || cell.IsEditing || cell.IsReadOnly)
       return;

    if (!cell.IsFocused)
    {
                cell.Focus();
    }
    DGrid.BeginEdit(e);
    cell.Dispatcher.Invoke(
           DispatcherPriority.Background,
           new Action(delegate { })
    );

}