c# - 与 Datatemplate 成员绑定(bind)

标签 c# wpf mvvm datatemplate

我有一个像这样的数据模板

public class DefaultDataTemplate : DataTemplate
{

    public string Name
    {
        get;
        set;

    }
}

我在这样的xaml中使用
   <!-- Default DataTemplate -->
    <DataTemplate x:Key="DefaultDataTemplate">
        <Grid Margin="4" MinHeight="25">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"  />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <TextBlock Text="{Binding Name}" FontWeight="Bold"  />               
        </Grid>
    </DataTemplate>

我想与我的数据模板的“名称”属性进行绑定(bind),但现在它绑定(bind)到我的 ListView 项的名为“名称”的属性。任何人都可以帮助正确的方式或语法

最佳答案

DataContext对于 DataTemplate是它正在模板化的 DataObject,您必须绑定(bind)回 DataTemplate或者在这种情况下 DefaultDataTemplate访问该属性。

尝试:

Text="{Binding Name, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataTemplate}}}

或者
Text="{Binding Name, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type myNamespace:DefaultDataTemplate }}}

关于c# - 与 Datatemplate 成员绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415297/

相关文章:

xaml - Xamarin MVVM不透明度转换器?

c# - 使用 C# 禁用窗口的动画效果

c# - 触发属性更改事件的更短代码

c# - 将动态数据绑定(bind)到 Silverlight Datagrid c#

c# - 在 WPF 中创建对角线模式

design-patterns - MVVM 独特优势

c# - 从 ViewModel 更改标签内容 Prop

c# - 如何使用 C# 滚动到 RichTextBox 控件的指定行号?

c# - Gridsplitter:将行高限制为窗口大小

c# - 如何从 C++ DLL 中的 C# 简单函数调用