DatagridTextColumn来自WPF中两个不同源的多绑定

时间:2016-08-12 20:22:21

标签: c# wpf multibinding

我有一个DataGrid,其中itemsource被设置为名为sorties的可观察集合

其中一个名为' Location'需要多重绑定。基本上,单元格输入中的值是ID,输出需要是名称。多重绑定器将获取ID和另一个位置集合,并找到要返回的名称。

例如

WPF

 <DataGridTextColumn Header="ICAO">
      <DataGridTextColumn.Binding>
           <MultiBinding Converter="{StaticResource ICAOIDConverter}">
                    <Binding Path="TakeoffLocationID"/>
                    <Binding Path="Locations*" />
           </MultiBinding>
      </DataGridTextColumn.Binding>
 </DataGridTextColumn>

转换器

 public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        Debug.Print(values[0].GetType().Name.ToString());
        Debug.Print(values[1].GetType().Name.ToString());
        int id = (int)values[0];
        ObservableCollection<Location> locs = values[1] as ObservableCollection<Location>;

        try
        {
            Location l = locs.Where(x => x.ID == id).FirstOrDefault();
            return l.ICAO;
        }
        catch { return DependencyProperty.UnsetValue; }
    }

这是我的问题。我的datagrid项目源设置为&#34; Sorties&#34;班级集合。在这个集合中存在&#39; TakeoffLocationID&#39;第一个绑定的路径,但&#39;位置&#39;此类中不存在要在我的第二个绑定中使用的路径。它存在,并从不同的项目源填充。我不想为每个出击都附上一个位置列表,因为这不符合内存效率。

如何点击与我的网格源不同的项目源。我已经考虑过创建静态和动态资源,但无法弄清楚如何在我从数据库中提取的600个位置的列表中填充和使用它们。

随意要求澄清。我很难解释这个问题。

非常感谢任何帮助。

0 个答案:

没有答案