<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Articles - s-iguchi</title>
  <subtitle>Implementation notes on WPF and .NET desktop development.</subtitle>
  <link href="https://s-iguchi09.github.io/feed.xml" rel="self" type="application/atom+xml" />
  <link href="https://s-iguchi09.github.io/articles/" rel="alternate" type="text/html" hreflang="en" />
  <id>https://s-iguchi09.github.io/feed.xml</id>
  <updated>2026-09-08T19:16:07+00:00</updated>
  <author>
    <name>s-iguchi</name>
  </author>
  <entry>
    <title>Controls with Custom Styles Fall Back to the Old Look Under the WPF Fluent Theme</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-fluent-theme-custom-style-not-applied/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-fluent-theme-custom-style-not-applied/</id>
    <published>2026-08-27T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">Why controls carrying a custom Style keep the legacy look under the Fluent theme, how BasedOn fixes it, and which placements leave BasedOn unresolved.</summary>
  </entry>
  <entry>
    <title>Causes of a Stale ICollectionView Filter in WPF and Choosing Between Refresh and Live Filtering</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-collectionviewsource-filter-not-refreshing/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-collectionviewsource-filter-not-refreshing/</id>
    <published>2026-08-24T00:00:00+00:00</published>
    <updated>2026-08-30T05:44:51+00:00</updated>
    <summary type="text">The filter is correct right after assignment, yet an item property change leaves the list stale. Refresh and live filtering compared on .NET 10.</summary>
  </entry>
  <entry>
    <title>Why a WPF RadioButton Bound to an Enum Shows No Initial Selection — The Role of GroupName</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-radiobutton-enum-binding/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-radiobutton-enum-binding/</id>
    <published>2026-08-22T00:00:00+00:00</published>
    <updated>2026-08-30T20:01:05+00:00</updated>
    <summary type="text">A ViewModel holds the right enum value, yet its radio button appears cleared. Omitting GroupName merges separate enum groups into one. Measured cause and fix.</summary>
  </entry>
  <entry>
    <title>Diagnosing a WPF Process That Stays Alive After the Window Closes — ShutdownMode and Foreground Threads</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-application-not-exiting-shutdownmode-threads/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-application-not-exiting-shutdownmode-threads/</id>
    <published>2026-08-18T00:00:00+00:00</published>
    <updated>2026-08-31T02:44:54+00:00</updated>
    <summary type="text">The window is gone but the process stays in Task Manager. WPF shutdown has two gates, app shutdown and process exit, and the fix depends on which one stalled.</summary>
  </entry>
  <entry>
    <title>Binding to a WPF UserControl&#39;s Own Dependency Property from Inside the Control</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-usercontrol-dependencyproperty-binding-not-working/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-usercontrol-dependencyproperty-binding-not-working/</id>
    <published>2026-08-15T00:00:00+00:00</published>
    <updated>2026-09-02T02:13:39+00:00</updated>
    <summary type="text">A dependency property gets its value, yet the internal {Binding Title} stays blank. RelativeSource, ElementName, and inner-root delegation compared on .NET 10.</summary>
  </entry>
  <entry>
    <title>Why WPF Validation Errors Are Not Displayed, and Choosing Between IDataErrorInfo and INotifyDataErrorInfo</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-validation-error-not-displayed/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-validation-error-not-displayed/</id>
    <published>2026-08-13T00:00:00+00:00</published>
    <updated>2026-08-31T04:53:06+00:00</updated>
    <summary type="text">Validation code runs but nothing appears. The causes are isolated on .NET 10: the ValidatesOnDataErrors default, a missing adorner layer, and update timing.</summary>
  </entry>
  <entry>
    <title>Selecting and Expanding a WPF TreeView Node from Code, and Why SelectedItem Is Read-Only</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-treeview-select-item-programmatically/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-treeview-select-item-programmatically/</id>
    <published>2026-08-10T00:00:00+00:00</published>
    <updated>2026-08-31T02:51:31+00:00</updated>
    <summary type="text">TreeView.SelectedItem cannot be assigned or data-bound: the selection lives on TreeViewItem. Style binding and ItemContainerGenerator are compared.</summary>
  </entry>
  <entry>
    <title>Binding to the Parent DataContext from Inside a WPF DataTemplate</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-datatemplate-parent-datacontext-binding/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-datatemplate-parent-datacontext-binding/</id>
    <published>2026-08-06T00:00:00+00:00</published>
    <updated>2026-08-30T05:44:51+00:00</updated>
    <summary type="text">Bindings inside a DataTemplate resolve against the item, not the parent view model. Comparing RelativeSource, ElementName, x:Reference, and PlacementTarget.</summary>
  </entry>
  <entry>
    <title>Why WPF Style Triggers and DataTriggers Do Not Apply — Dependency Property Value Precedence</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-style-trigger-not-working-local-value/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-style-trigger-not-working-local-value/</id>
    <published>2026-08-03T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">A style trigger that never applies is usually outranked by a local value in XAML. Covers value precedence and the Setter, SetCurrentValue and ClearValue fixes.</summary>
  </entry>
  <entry>
    <title>Releasing the Image File Locked by BitmapImage in WPF with BitmapCacheOption.OnLoad</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-bitmapimage-file-lock-cacheoption/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-bitmapimage-file-lock-cacheoption/</id>
    <published>2026-07-25T00:00:00+00:00</published>
    <updated>2026-08-29T18:51:54+00:00</updated>
    <summary type="text">An image file shown through BitmapImage cannot be deleted or overwritten. This covers the default caching behavior behind it and the OnLoad fix.</summary>
  </entry>
  <entry>
    <title>Replicating Windows Explorer Sort Order in C# with StrCmpLogicalW and IComparer</title>
    <link href="https://s-iguchi09.github.io/articles/csharp-natural-sort-strcmplogicalw-icomparer/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/csharp-natural-sort-strcmplogicalw-icomparer/</id>
    <published>2026-07-24T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">The default string sort orders &quot;item10&quot; before &quot;item2&quot;. This shows how to reproduce Explorer&#39;s natural sort order via StrCmpLogicalW P/Invoke in an IComparer.</summary>
  </entry>
  <entry>
    <title>Fixing a RelayCommand Whose CanExecute Does Not Update the Button State in WPF</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-relaycommand-canexecute-not-updating/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-relaycommand-canexecute-not-updating/</id>
    <published>2026-07-23T00:00:00+00:00</published>
    <updated>2026-09-02T02:13:39+00:00</updated>
    <summary type="text">A custom RelayCommand&#39;s button stays stuck when CanExecuteChanged is never raised. This compares delegating to RequerySuggested with raising it manually.</summary>
  </entry>
  <entry>
    <title>Calling TextBox UpdateSource from the View in WPF: Implementation and Pitfalls</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-textbox-updatesource-from-view-pitfalls/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-textbox-updatesource-from-view-pitfalls/</id>
    <published>2026-07-22T00:00:00+00:00</published>
    <updated>2026-08-30T16:13:36+00:00</updated>
    <summary type="text">Calling GetBindingExpression().UpdateSource() from the View has pitfalls: null returns, bulk updates, wrong direction, and MVVM, grounded in official docs.</summary>
  </entry>
  <entry>
    <title>Controlling When TextBox Input Reaches the Source with UpdateSourceTrigger in WPF</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-textbox-updatesourcetrigger-binding-timing/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-textbox-updatesourcetrigger-binding-timing/</id>
    <published>2026-07-21T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">TextBox.Text defaults to LostFocus, so typed input may never reach the ViewModel. This covers the three UpdateSourceTrigger values, their timing, and pitfalls.</summary>
  </entry>
  <entry>
    <title>Fixing the Cross-Thread Exception When Updating an ObservableCollection in WPF</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-observablecollection-cross-thread-update/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-observablecollection-cross-thread-update/</id>
    <published>2026-07-20T00:00:00+00:00</published>
    <updated>2026-08-31T03:43:44+00:00</updated>
    <summary type="text">Modifying a bound ObservableCollection off the UI thread throws a NotSupportedException from CollectionView affinity. This covers the cause and two fixes.</summary>
  </entry>
  <entry>
    <title>Hiding the Clear Button on a Fluent-Themed WPF TextBox</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-fluent-textbox-hide-clear-button/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-fluent-textbox-hide-clear-button/</id>
    <published>2026-07-19T00:00:00+00:00</published>
    <updated>2026-09-02T02:13:39+00:00</updated>
    <summary type="text">How to hide the clear button a Fluent-themed WPF TextBox shows on focus, without changing input behavior, on .NET 10 and .NET 9.</summary>
  </entry>
  <entry>
    <title>Why a WPF ScrollViewer Does Not Scroll and How to Fix It</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-scrollviewer-not-scrolling/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-scrollviewer-not-scrolling/</id>
    <published>2026-07-17T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">A ScrollViewer inside a StackPanel does not scroll because the StackPanel never constrains its height. This covers the cause and the Grid and DockPanel fixes.</summary>
  </entry>
  <entry>
    <title>Formatting Numbers, Currency, and Dates with Binding.StringFormat in WPF</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-binding-stringformat-number-currency-date/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-binding-stringformat-number-currency-date/</id>
    <published>2026-07-17T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">A practical guide to formatting numbers, currency, and dates with Binding.StringFormat without a converter, including culture and ContentControl constraints.</summary>
  </entry>
  <entry>
    <title>Key-Based Aggregation Without GroupBy — Dictionary-Backed CountBy, AggregateBy and Index</title>
    <link href="https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net9/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net9/</id>
    <published>2026-07-16T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">Implementing CountBy, AggregateBy and Index with direct dictionary accumulation, avoiding the intermediate-grouping allocations of GroupBy.</summary>
  </entry>
  <entry>
    <title>Expressing SQL Outer Joins in LINQ — Implementing LeftJoin, RightJoin and Shuffle</title>
    <link href="https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net10/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net10/</id>
    <published>2026-07-16T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">Implementing LeftJoin, RightJoin and Shuffle on .NET Framework, mapping them to SQL outer joins and covering the IQueryable translation pitfall.</summary>
  </entry>
  <entry>
    <title>Reading WPF Binding Errors and Diagnosing Them with the Output Window</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-binding-error-debugging-output-window/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-binding-error-debugging-output-window/</id>
    <published>2026-07-15T00:00:00+00:00</published>
    <updated>2026-08-30T06:15:12+00:00</updated>
    <summary type="text">When a WPF Binding fails silently, Visual Studio logs it as a trace. This article covers reading the message, raising the trace level, and common patterns.</summary>
  </entry>
  <entry>
    <title>Selector-Free ToDictionary — Designing for Overload Resolution and the notnull Constraint</title>
    <link href="https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net8/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net8/</id>
    <published>2026-07-15T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">Recreating the .NET 8 selector-free ToDictionary overloads on .NET Framework as an exercise in overload resolution and notnull constraint design.</summary>
  </entry>
  <entry>
    <title>Order and OrderDescending by Pure Delegation — A Minimal Polyfill with IOrderedEnumerable Compatibility</title>
    <link href="https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net7/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net7/</id>
    <published>2026-07-14T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">A delegation-only polyfill for Order and OrderDescending, focused on ThenBy compatibility via IOrderedEnumerable and runtime-specific sort exceptions.</summary>
  </entry>
  <entry>
    <title>Replacing GroupBy and Full-Sort Workarounds — Implementing Chunk, MaxBy, MinBy and DistinctBy</title>
    <link href="https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net6/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net6/</id>
    <published>2026-07-13T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">Measuring the runtime cost of GroupBy and full-sort workaround idioms, then replacing them with Chunk, MaxBy, MinBy and DistinctBy polyfills.</summary>
  </entry>
  <entry>
    <title>Designing LINQ Polyfills That Preserve Lazy Evaluation — Implementing Append, Prepend, TakeLast and SkipLast</title>
    <link href="https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net5/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/linq-backport-netframework-to-net5/</id>
    <published>2026-07-10T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">Three design principles for hand-rolled LINQ polyfills, demonstrated through the Append, Prepend, TakeLast and SkipLast implementations.</summary>
  </entry>
  <entry>
    <title>How to Reset DataGrid Sorting in WPF</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-datagrid-sort-reset/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-datagrid-sort-reset/</id>
    <published>2026-06-29T00:00:00+00:00</published>
    <updated>2026-09-02T02:13:39+00:00</updated>
    <summary type="text">Practical ways to reset WPF DataGrid sorting, including explicit clearing, Sorting-event control, CollectionView handling, and a reusable Behavior.</summary>
  </entry>
  <entry>
    <title>C# Operators and Initialization Syntax by Version</title>
    <link href="https://s-iguchi09.github.io/articles/csharp-operators-initialization-syntax-by-version/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/csharp-operators-initialization-syntax-by-version/</id>
    <published>2026-06-22T00:00:00+00:00</published>
    <updated>2026-08-31T05:45:38+00:00</updated>
    <summary type="text">A version-by-version guide to C# operators and initialization syntax, built from actual compilation against net48. Shows which constructs need only LangVersion, which need BCL types, and how to supply the missing ones.</summary>
  </entry>
  <entry>
    <title>C# 14 Extension Members on Static Classes: Static Members Only</title>
    <link href="https://s-iguchi09.github.io/articles/csharp14-extension-members-static-class-limitation/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/csharp14-extension-members-static-class-limitation/</id>
    <published>2026-06-17T00:00:00+00:00</published>
    <updated>2026-09-02T03:07:47+00:00</updated>
    <summary type="text">A C# 14 extension block can target a static class such as Directory, but only static members can be added. Instance members are rejected with CS0721 or CS9303. This article maps the boundary to the receiver form and covers the alternatives for instance-style calls.</summary>
  </entry>
  <entry>
    <title>Why StaticResource Changes Are Not Reflected in WPF and How to Fix It</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-staticresource-vs-dynamicresource/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-staticresource-vs-dynamicresource/</id>
    <published>2026-06-11T00:00:00+00:00</published>
    <updated>2026-09-02T02:13:39+00:00</updated>
    <summary type="text">StaticResource resolves its value at XAML load time, so runtime changes have no effect. Use DynamicResource when the value must update at runtime.</summary>
  </entry>
  <entry>
    <title>Why WPF Slows Down with Many Labels and When to Switch to TextBlock</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-label-vs-textblock-performance/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-label-vs-textblock-performance/</id>
    <published>2026-06-10T00:00:00+00:00</published>
    <updated>2026-08-31T03:43:44+00:00</updated>
    <summary type="text">Why rendering slows down when many WPF Labels are used, explained through measured visual tree data. Covers the gap against TextBlock, the extra cost imposed by underscores, and whether the difference survives UI virtualization.</summary>
  </entry>
  <entry>
    <title>Why WPF Label Hides Underscores and How to Fix It</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-label-underscore-issue/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-label-underscore-issue/</id>
    <published>2026-06-09T00:00:00+00:00</published>
    <updated>2026-08-31T02:31:49+00:00</updated>
    <summary type="text">When a string containing an underscore (_) is set on a WPF Label, the character disappears from the screen. This article explains the underlying ContentPresenter.RecognizesAccessKey behavior, identifies which controls are affected, and covers four workarounds with measured results.</summary>
  </entry>
  <entry>
    <title>Switching Controls Between Display and Edit Modes in WPF DataGrid Cells</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-datagrid-cell-editing-template/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-datagrid-cell-editing-template/</id>
    <published>2026-06-09T00:00:00+00:00</published>
    <updated>2026-09-02T02:13:39+00:00</updated>
    <summary type="text">Use DataGridTemplateColumn with CellTemplate and CellEditingTemplate to separate display UI from editing UI in WPF DataGrid.</summary>
  </entry>
  <entry>
    <title>Fixing a WPF Tray ContextMenu That Does Not Close on Focus Loss</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-tray-contextmenu-close-on-focus-loss/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-tray-contextmenu-close-on-focus-loss/</id>
    <published>2026-06-07T00:00:00+00:00</published>
    <updated>2026-08-30T04:47:57+00:00</updated>
    <summary type="text">This article explains how TreePaste resolved a tray ContextMenu that stayed visible until an item was clicked by combining StaysOpen=false with SetForegroundWindow().</summary>
  </entry>
  <entry>
    <title>Applying Fluent Design in WPF Without Extra Libraries</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-fluent-design-with-systemcolors/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-fluent-design-with-systemcolors/</id>
    <published>2026-05-30T00:00:00+00:00</published>
    <updated>2026-09-02T03:28:00+00:00</updated>
    <summary type="text">This article explains how to apply Fluent styling in WPF using only built-in features, with App.xaml theme setup and SystemColors-based color tracking.</summary>
  </entry>
  <entry>
    <title>How to Display Selectable, Copyable Read-Only Text in WPF</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-selectable-readonly-text-display/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-selectable-readonly-text-display/</id>
    <published>2026-05-14T00:00:00+00:00</published>
    <updated>2026-09-02T02:13:39+00:00</updated>
    <summary type="text">Learn how to use a read-only TextBox as a TextBlock replacement in WPF so text remains selectable and copyable without allowing edits.</summary>
  </entry>
  <entry>
    <title>WPF ComboBox ItemsSource Binding Patterns and Selected Value Retrieval</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-combobox-itemssource-patterns/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-combobox-itemssource-patterns/</id>
    <published>2026-04-26T00:00:00+00:00</published>
    <updated>2026-09-02T02:13:39+00:00</updated>
    <summary type="text">The correct combination of DisplayMemberPath, SelectedItem, SelectedValue, and SelectedValuePath depends on the element type bound to ItemsSource. This article covers the five main patterns.</summary>
  </entry>
  <entry>
    <title>How to Prevent SelectedItems from Appearing Lost in a Virtualized WPF ListBox</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-listbox-virtualization-selecteditems/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-listbox-virtualization-selecteditems/</id>
    <published>2026-04-24T00:00:00+00:00</published>
    <updated>2026-08-29T15:26:19+00:00</updated>
    <summary type="text">Why ListBox selection appears to vanish under UI virtualization, and how an IsSelected-based MVVM pattern keeps it stable. Includes measured evidence that the ItemContainerStyle binding alone loses selections, and the SelectionChanged pairing that fixes it.</summary>
  </entry>
  <entry>
    <title>How to Implement DataGrid Sorting in WPF</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-datagrid-sorting/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-datagrid-sorting/</id>
    <published>2026-04-20T00:00:00+00:00</published>
    <updated>2026-09-02T02:13:39+00:00</updated>
    <summary type="text">Learn the basics of DataGrid sorting and practical implementation patterns for real-world WPF applications.</summary>
  </entry>
  <entry>
    <title>Customising the DatePicker Display Format in WPF</title>
    <link href="https://s-iguchi09.github.io/articles/wpf-datepicker-custom-format/" rel="alternate" type="text/html" />
    <id>https://s-iguchi09.github.io/articles/wpf-datepicker-custom-format/</id>
    <published>2026-04-15T00:00:00+00:00</published>
    <updated>2026-09-02T02:13:39+00:00</updated>
    <summary type="text">A practical guide to changing the date display format of WPF DatePicker from XAML, code-behind, and a value converter.</summary>
  </entry>
</feed>
