從@Rida發現這個帖子後:
How to disable Moving/ReOrdering of ListView Header in WPF?
我決定來解決我的問題與的DependencyProperty稱爲FixedColumns和這是一個整數。
public class ColumnsExtension : DependencyObject
{
public static readonly DependencyProperty FixedColumnsProperty =
DependencyProperty.RegisterAttached("FixedColumns", typeof(int),
typeof(ColumnsExtension), new PropertyMetadata(0));
public static int GetFixedColumns(DependencyObject obj)
{
return (int)obj.GetValue(FixedColumnsProperty);
}
public static void SetFixedColumns(DependencyObject obj, int value)
{
obj.SetValue(FixedColumnsProperty, value);
}
}
我解析包含描述該列中的數據的文本文件,如果我遇到其位置被固定的柱,然後我增加固定的列數:
foreach (var parsedColumn in parsedColumns)
{
var fCols = this.TestLV.GetValue(ColumnsExtension.FixedColumnsProperty);
// increase the number of fixed columns
if (parsedColumn.ColumnResize == ColumnResize.IsFixed)
this.TestLV.SetValue(ColumnsExtension.FixedColumnsProperty, (int)fCols + 1);
// ...
}
一旦解析完成,我訂閱CollectionChanged事件處理程序和代碼基本上是什麼@Rida提出,但不是檢查,我檢查,看看是否NewStartingIndex比numbe小固定列的r。
如果是這種情況,那麼我只需取消此舉。
的結果是,我現在能有這樣的星座有兩個固定欄目:
![Original state](https://i.stack.imgur.com/D2mZD.png)
如果有可能我拖到最後三列彼此之間,而不是固定的列前。
![After dragging](https://i.stack.imgur.com/VpzB3.png)
請注意,當試圖固定的列前拖動列,但下降只是失敗這是我最主要的事情拖裝飾器仍然可見。 隨着時間的推移,我可以嘗試改變這種情況下的裝飾裝飾。
我希望這可以幫助某個人,因爲來自@RIDA的代碼幫助了我。