我有一个ListView
,并且我希望能够使用CollectionView
对它的任何列进行排序。
当我有一个简单的绑定时,设置PropertyName
的{{1}}不会遇到问题:
SortDescription
但是当我有MultiBinding时,是否可以采用第一个或第二个绑定路径的Path?
我的XAML是这样制作的:
header = ((System.Windows.Data.Binding)headerClicked.Column.DisplayMemberBinding).Path.Path;
答案 0 :(得分:1)
但是当我有
MultiBinding
时,是否可以采用第一个或第二个绑定路径的Path
?
由于GridViewColumnHeader
仅应用于GridViewColumn
中的MultiBinding
元素,因此不是来自TextBlock
或CellTemplate
。
但是您可以创建一个附加属性并为每个列显式设置路径:
public class GridViewColumnExtensions
{
public static readonly DependencyProperty PathProperty = DependencyProperty.RegisterAttached(
"Path",
typeof(string),
typeof(GridViewColumnExtensions),
new FrameworkPropertyMetadata(null)
);
public static void SetPath(GridViewColumn element, string value)
{
element.SetValue(PathProperty, value);
}
public static string GetPath(GridViewColumn element)
{
return (string)element.GetValue(PathProperty);
}
}
XAML:
<GridViewColumn Header="{x:Static p:Resources.Quantite}" Width="50" local:GridViewColumnExtensions.Path="test">
用法:
string header = GridViewColumnExtensions.GetPath(headerClicked.Column);