2012-08-24 31 views
0

當我嘗試將DataGrid中的複選框綁定到View Model的公共屬性(它是用戶控件的數據上下文)時,是否看到我的代碼存在任何問題?如何綁定到相對源

感謝,

Jdang

<Custom:DataGrid ItemsSource="{Binding Customers}" 
           AlternatingRowBackground="AliceBlue" 
           AutoGenerateColumns="False" 
           MaxHeight="250"       
           CanUserAddRows="False" 
           CanUserDeleteRows="False" > 
       <Custom:DataGrid.Columns>      
        <Custom:DataGridTemplateColumn> 
         <Custom:DataGridTemplateColumn.Header> 
          <WrapPanel> 
           <CheckBox IsChecked="{Binding Path=IsCheckAll, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}}, 
            UpdateSourceTrigger=PropertyChanged}"/>                  
           <TextBlock>Select<LineBreak/>UnSelect</TextBlock> 
          </WrapPanel>        
         </Custom:DataGridTemplateColumn.Header> 
         <Custom:DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <CheckBox IsChecked="{Binding Path=Selected, Mode=TwoWay}"/> 
          </DataTemplate> 
         </Custom:DataGridTemplateColumn.CellTemplate> 
        </Custom:DataGridTemplateColumn> 

回答

0

你試圖找到該用戶控件,是(我假設,因爲它不是在代碼段)在邏輯樹。 綁定在模板中,這意味着它是可視化樹的一部分。由於他們沒有連接,你無法找到它。

+0

Martin,該窗體上的所有控件都屬於用戶控件的頂級祖先。對我來說,綁定引擎應該能夠在邏輯樹上行走並找到用戶控制。我必須錯過一些使綁定失敗的東西。 – AustinTX