Я хотел бы отключить запись столбцов в созданном нами элементе управления, который является производным от ListView. Этот элемент управления называется SortableListView
. Я думал, что свойство зависимостей будет лучшим способом реализовать это, но ((SortableListVIew)source).View
возвращает null
. Вот код:ListView.View имеет значение null в свойстве зависимостей
public class SortableListView : ListView
{
// ...lots of other properties here
public static readonly DependencyProperty AllowsColumnReorderProperty =
DependencyProperty.Register(
"AllowsColumnReorder",
typeof(bool),
typeof(SortableListView),
new UIPropertyMetadata(true, AllowsColumnReorderPropertyChanged));
public bool AllowsColumnReorder
{
get
{
return (bool)this.GetValue(AllowsColumnReorderProperty);
}
set
{
this.SetValue(AllowsColumnReorderProperty, value);
}
}
private static void AllowsColumnReorderPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e)
{
ViewBase vb = ((SortableListView)source).View;
if (vb != null)
{
((GridView)vb).AllowsColumnReorder = (bool)e.NewValue;
}
}
И XAML:
<TableControls:SortableListView x:Name="QueueViewTable" Margin="0,0,0,0"
Style="{StaticResource ListViewStyle}"
ItemsSource="{Binding Path=QueueList}"
ItemContainerStyle="{StaticResource alternatingListViewItemStyle}"
AlternationCount="2"
SelectionMode="Single"
SortEnabled="False"
AllowsColumnReorder="false">
Проблема заключается в том, что VB всегда нуль поэтому метод не удается установить AllowsColumnReoder. Я совершенно уверен, что бросок является действительным, так как код изначально выглядел как это в OnInitialized:
((GridView)this.View).AllowsColumnReorder = false;
... но мне нужно, чтобы установить AllowsColumnReorder на конкретном экземпляре зрения так что этот код не хорошо.
Может ли кто-нибудь сказать мне, что я делаю неправильно? Или есть лучший способ установить это свойство?
Я не совсем уверен, что понимаю. Как переопределить свойство View и добавить прослушиватель изменений? Извините за немой вопрос, но я довольно новичок в WPF и учусь на работе. – serlingpa
обновленный ответ, чтобы включить больше информации –
Большое спасибо за информацию John. У меня есть еще один вопрос: как мне получить правильный параметр для моего метода AlowsColumnReorderPropertyChanged? – serlingpa