- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Xaml 中,我可以使用设置自定义附加属性本地:TestClass.TestProperty =“1”
我可以使用绑定(bind)到自定义附加属性{绑定(bind)路径=(命名空间:[OwnerType].[PropertyName])}{绑定(bind)路径=(local:TestClass.TestProperty)}
但是,当我需要在 SortDescription 中使用自定义附加属性时,如何指定命名空间?我可以使用绑定(bind)到附加属性new SortDescription("(Grid.Row)", ListSortDirection.Descending)但在这里我无法在任何地方设置命名空间...
最诚挚的问候,杰斯珀
最佳答案
不能,原因与 {Binding Path=a:b.c}
有效但 {Binding a:b.c}
无效的原因相同:PropertyPath 构造函数没有命名空间上下文。
不幸的是,对于 SortDescription 来说,您无能为力。您必须找到一种不使用附加属性的排序方法。
通常我告诉人们,使用 Tag 是错误编码的一个指标,但在这种情况下,Tag 可能是您的最佳选择:您可以在 Tag 中创建一个对象,该对象的属性可返回您想要的实际附加属性。
在 PropertyChangedCallback 中,将 Tag 实例化为内部类的实例:
public class TestClass : DependencyObject
{
... TestProperty declaration ...
PropertyChangedCallback = (obj, e) =>
{
...
if(obj.Tag==null) obj.Tag = new PropertyProxy { Container = obj };
});
public class PropertyProxy
{
DependencyObject Container;
public SomeType TestProperty { get { return GetTestProperty(Container); } }
}
}
现在您可以在 SortDescription 中使用 Tag 的子属性:
<SortDescription PropertyName="Tag.TestProperty" />
如果只有一个属性需要排序,您可以简单地使用 Tag 来排序。
这样做的主要问题是使用 Tag 属性会与也尝试使用该 Tag 的任何其他代码发生冲突。因此,您可能想在标准库中查找一些晦涩的 DependencyProperty,这些属性甚至不适用于相关对象,并使用它来代替 Tag。
关于wpf - 具有自定义附加属性的 SortDescription,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3053559/
我有list Persons 人有身份证,类似这样的:12231d4sa32fd 我有一个转换器可以将 ID 转换为状态:(就绪/等待/不在这里)。 我在 ListView 中显示列表。 问题:如何按
在 Xaml 中,我可以使用设置自定义附加属性本地:TestClass.TestProperty =“1” 我可以使用绑定(bind)到自定义附加属性{绑定(bind)路径=(命名空间:[OwnerT
当我修改绑定(bind)在列表框中的项目的值时,我希望排序顺序应该自动更改。 但事实并非如此。 在这种情况下,我是否调用了 .SortDescriptions.Clear() 方法并重新分配了 Sor
我在这里遇到了一个关于 WPF DataGrid(.NET 4.0 中的 System.Windows.Controls.DataGrid)排序的奇怪问题。 它的 ItemsSource 绑定(bin
我的 WPF 应用程序使用 XMLDataProvider 获取其数据。 XML 文件有一个 dd/mm/yyyy 对于列出的每个项目。我正在使用对应用程序中的数据进行排序 Listbox1.Item
这个问题在这里已经有了答案: Sort on a string that may contain a number (24 个答案) How can I sort a string of text
这是单击 DataGrid 中的列标题时的默认排序方法。 .当底层列表包含 100,000 个项目时,刷新 View 大约需要 20 秒。设置 SortDescription 时可以观察到相同的延迟。
我想从 coredata 中获取所有排序的数据,但它不起作用。这是我的实体: class Kurzus: NSManagedObject { @NSManaged var kurzuskod:
myListBox.Items.SortDescriptions.Add( new SortDescription("BoolProperty", ListSortDirection.Descendi
这就是我想要的:如果我将 ICollectionview 绑定(bind)到 DataGrid,我不想在我的 Viewmodel 中丢失 SortDescription。 我创建了一个小示例项目来了解
我正在使用 SortDescription 对 ICollectionView 进行排序。 我的数据是字符串,所以我天真地假设我可以使用 null 或 "" 作为 propertyName 参数,因为
我有一个接口(interface) public interface IProperty { string Name { get; } } 及其显式实现 public class Parame
我有一个绑定(bind)到 TreeView 的 Layers 列表,其中每个实例都有一个 Effects 列表。我通过 HierarchicalDataTemplate 展示它们,效果很好,但我正在
我正在使用 VS2013、.net4.5、WPF 桌面应用程序。 Xaml: CS: this
我在使用 SortDescription 时遇到问题。我发现了一些关于这个问题的线索,比如如果你想按一个没有实现 IComparable 的类型排序,比如用户定义的类,但这不是我的情况。 我有一个类,
我是一名优秀的程序员,十分优秀!