2012-07-05 96 views
0

以下是我的DataGrid XAML:無法綁定DataGridTemplateColumn組合框編輯模板

<DataGrid Visibility="Visible" Margin="20" ItemContainerStyle="{x:Null}" OverridesDefaultStyle="False" CellStyle="{x:Null}" Style="{x:Null}" RowStyle="{x:Null}" ColumnHeaderStyle="{x:Null}" Foreground="Black" CanUserAddRows="True" AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Path=MovieList}"> 
     <DataGrid.Columns> 

      <DataGridTextColumn Binding="{Binding Title, Mode=TwoWay}" CanUserResize="True" MaxWidth="450" CanUserSort="True" Header="Title" Width="200" /> 

      <DataGridTemplateColumn Width="130" Header="Type"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Path=Type}" /> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
       <DataGridTemplateColumn.CellEditingTemplate> 
        <DataTemplate> 
         <ComboBox Width="120" ItemsSource="{Binding Path=GenreList}" DisplayMemberPath="Name" SelectedValuePath="ID" Height="Auto" HorizontalAlignment="Center" Name="comboBox1" VerticalAlignment="Top" /> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellEditingTemplate> 
      </DataGridTemplateColumn> 
     </DataGrid.Columns> 
    </DataGrid> 

的單元格編輯模板具有其綁定到一個觀察集合組合框「GenreList」。該集合在ViewModel中初始化。什麼可能是ComboBox未被填充的原因?

+1

是GenreList在視圖模型的'DataGrid'或視圖模型的'DataGridRow '?只是猜測,但嘗試'ItemsSource =「{Binding RelativeSource = {RelativeSource AncestorType = {x:Type DataGrid}},Path = DataContext.GenreList}' – 2012-07-05 19:29:47

回答

0

你沒有進入你的ViewModel。您需要前往源代碼 - 與您的ViewModel綁定的視覺元素。例如,如果它是一路上漲的觀點,讓我們假設它的類型用戶控件的,下面的工作:

<ComboBox ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Path=GenreList}".... /> 

另一種方式,如果你想確保你選擇從正確的元素結合的,不是一個類型的基礎上,給予限界您的視圖模型的名稱的元素(我將使用相同的用戶控件)

<UserControl x:Name="me".../> 

    <ComboBox ItemsSource="{Binding ElementName=me, Path=DataContext.GenreList}".... /> 
+1

它會工作,如果它是'UserControl'屬性,否則如果它在'DataContext'你需要'DataContext.GenreList' – 2012-07-05 20:18:14

+0

你是對的:)我的壞 – 2012-07-05 20:34:52

+0

謝謝你們......你的回答很好。 – Lucifer 2012-07-06 14:50:40