gpt4 book ai didi

c# - WPF 相对绑定(bind)异常

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:26 25 4
gpt4 key购买 nike

给定一个绑定(bind)到如下定义的 View 模型的用户控件

class MyViewModel
{
public DataView MyView { get; set; }
public DataView MyTypes { get; set; }
}

而XAML大致标记如下

<Grid>
<dxg:GridControl AutoPopulateColumns="True" Name="gridControl1" ItemsSource="{ Binding MyView}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="col1">
<dxg:GridColumn.EditTemplate>
<ControlTemplate>
<dxe:ComboBoxEdit Name="cmbTypes"
ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}},
Path=ViewModel.MyTypes}"/>
</ControlTemplate>
</dxg:GridColumn.EditTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="col2"/>
<dxg:GridColumn FieldName="col3" Width="75"/>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView Name="tableView1" AutoWidth="True" ShowTotalSummary="True" />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>

绑定(bind)如下

internal MyViewModel ViewModel
{
get { return (MyViewModel)DataContext; }
set { DataContext = value; }
}

当然,ComboBox 不会显示 ListTypes 中确实有值的选择

问题是 - 如何引用 ViewModel 的 ListTypes 属性来自 Grid.Column,其中 Grid 绑定(bind)到不具有属性 ListTypes 的 DataView MyItems,它与 ListTypes 处于同一级别!!!

感谢任何帮助

最佳答案

如果我正确理解了这个问题,我希望以下内容能够工作:

{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}},
Path=DataContext.MyTypes}

可能 Path=ViewModel.MyTypes 没有正常工作只是因为您没有在 ViewModel 属性上实现更改通知。不过,正如我所说 - 您应该能够与 Path=DataContext.MyTypes 相处融洽。

注意:您似乎在问题中将该属性称为 MyTypesListTypes - 不确定哪个对您的对象模型是正确的。

关于c# - WPF 相对绑定(bind)异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10361014/

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