gpt4 book ai didi

wpf - 如何将继承的附加属性值绑定(bind)到我的 VM?

转载 作者:行者123 更新时间:2023-12-04 14:23:09 24 4
gpt4 key购买 nike

我定义了一个自定义附加属性如下:

public class DataFilter
{
public static readonly DependencyProperty FilterColumnProperty =
DependencyProperty.RegisterAttached("FilterColumn", typeof (string), typeof (DataFilter),
new FrameworkPropertyMetadata(string.Empty,
FrameworkPropertyMetadataOptions.Inherits));

public static void SetFilterColumn(UIElement element, string value)
{
element.SetValue(FilterColumnProperty, value);
}

public static string GetFilterColumn(UIElement element)
{
return (string) element.GetValue(FilterColumnProperty);
}

我在我的 XAML 中使用它如下:

    <Grid Height="600" Name="grdData" cmds:DataFilter.FilterColumn="datasource_id">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition Height="25"></RowDefinition>
<RowDefinition Height="50"></RowDefinition>
</Grid.RowDefinitions>
<igDP:XamDataGrid Name="xamDataGrid1" VerticalAlignment="Top" DataSource="{Binding Tables[Table1]}" ActiveDataItem="{Binding SelectedItem, Mode=OneWayToSource}" cmds:DataFilter.FilterColumn="{Binding FilterCol, Mode=OneWayToSource">

此处的目标是能够将继承的 cmds:DataFilter.FilterColumn 的附加属性值绑定(bind)到 FilterCol 的 VM 属性。我不确定如何实现这一目标。上面的代码/XAML 仅将附加属性 (strng.Empty) 的默认值设置为 VM 属性,这是因为它正在子控件中创建附加属性的新实例。我不确定使用什么 XAML 语法来让它绑定(bind)到网格(父)控件中设置的值。

最佳答案

稍后我会尝试发布我的一些代码(现在没有时间),但通过再次查看您的代码,我认为您的问题出在这里:

在这一行中,您将 DataContext 设置为“{Binding Tables[Table1]}”,我认为这是您的 Binding 试图找到 FilterCol 的地方,但它不在那里。尝试设置 {Binding FilterCol, RelativeSource={RelativeSource AncestorType={x:Type Grid}}} 希望这有帮助

关于wpf - 如何将继承的附加属性值绑定(bind)到我的 VM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3247267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com