C#/WPF:将 Datagrid 中的 Combobox ItemSource 绑定到 DataContext 外部的元素

2024-05-08

我想做以下事情:

public List<Users> PreLoadedUserList { get; set; }
public List<RowEntries> SomeDataRowList { get; set; }

public class Users
{
    public int Age { get; set; }
    public string Name { get; set; }
}
public class SomeDataRowList 
{
    public int UserAge { get; set;
}

现在我的(WPF 工具包)DataGrid 看起来像这样:

<my:DataGrid AutoGenerateColumns="False" MinHeight="200" 
             ItemsSource="{Binding Path=SomeDataRowList}">
    <my:DataGridComboBoxColumn Header="Age" 
                               ItemsSource="{Binding Path=PreLoadedUserList}" 
                               DisplayMemberPath="Name" 
                               SelectedValueBinding="{Binding Path=UserAge}"/>

</my:DataGrid>

现在我的问题是,PreLoadedUserList 位于 ItemSource (SomeDataRowList) 之外,我不知道如何绑定到它之外的东西。我真正想要的是: - 在ComboBox中显示PreLoadedUserList - 将 (RowEntries) SelectedItem.UserAge 的值设置为所选 ComboboxItem.Age 的值

如果我的解释太奇怪,请告诉我:-)

谢谢你, 干杯


开始了 :-)

<my:DataGridTemplateColumn Header="SomeHeader">
    <my:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox SelectedValuePath="UserAge" 
                SelectedValue="{Binding Age}" 
                DisplayMemberPath="Name" 
                ItemsSource="{Binding Path=DataContext.PreLoadedUserList, 
                    RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" 
                IsReadOnly="True" Background="White" />
        </DataTemplate>
    </my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>

希望这也可以帮助其他人。

Cheers

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#/WPF:将 Datagrid 中的 Combobox ItemSource 绑定到 DataContext 外部的元素 的相关文章

随机推荐