2009-12-11 49 views
1

OK以外所以我從管理員列表中選擇一個管理員組合框:如何綁定到數據上下文WPF工具包數據網格

<ComboBox x:Name="adminCombo" 
      ItemsSource="{Binding AdminsList}" 
      DisplayMemberPath="Name" 
      SelectedValue="{Binding Administrator}" 
      SelectedValuePath="Name"/> 

低於這個我有一個WPF工具包數據網格。每個管理員都擁有用戶定義的字段(可用的UDF)列表。在我的數據網格的第一列中,我希望有一個可編輯的模板,由另一個組合框組成,其中的項目源是屬於所選管理員的字段列表。以下標記不起作用。

<toolkit:DataGrid 
    AutoGenerateColumns="False" 
    ItemsSource="{Binding Path=UserDefinedFields}"> 
    <toolkit:DataGrid.Columns> 
     <toolkit:DataGridTemplateColumn Header="Custom Data"> 
      <toolkit:DataGridTemplateColumn.CellEditingTemplate> 
      <DataTemplate> 
        <ComboBox ItemsSource="{Binding ElementName=adminCombo, 
        Path=SelectedValue.AvailableUDFs}" 
        SelectedValue="{Binding Field.Type}" 
        DisplayMemberPath="Name"/> 
      </DataTemplate> 
      </toolkit:DataGridTemplateColumn.CellEditingTemplate> 
     </toolkit:DataGridTemplateColumn> 
    </toolkit:DataGrid.Columns> 
</toolkit:DataGrid> 

我也曾嘗試相對源 - 查找祖先樹搜索到以前的組合框,但無濟於事。奇怪的是,將相同的組合框放入ListView的項目模板中工作正常,正確的項目列表顯示依賴於選定的管理員。使用WPF ListView的問題是最終我想在同一行上有其他可編輯的單元格,而普通的ListView並不是用於此目的。

任何人都可以幫我嗎? 感謝 克里斯

+0

爲什麼值得WPF ListView支持同一行上的多個可編輯單元:設置列時只需使用CellTemplate而不是DisplayMemberBinding。 – itowlson 2009-12-11 00:06:59

回答

0

可以使用datagridcombocolumn,並獲得項目源到這是一個有點棘手,我回答瞭如何做到這一點here,享受。

+0

感謝您的回答我試過這個,但問題是數據網格內的組合框無法找到名爲'adminCombo'的組合框。 System.Windows.Data錯誤:4:找不到與引用'ElementName = adminCombo'綁定的源。 BindingExpression:路徑= SelectedItem.AvailableFundUDFs;的DataItem = NULL;目標元素是'ComboBox'(Name ='');目標屬性是'ItemsSource'(鍵入'IEnumerable') – cjroebuck 2009-12-11 11:43:22

相關問題