2009-11-28 106 views
0

我創建檢查列表框下面的模板:WPF選中列表框中的問題

<Style x:Key="CheckBoxListStyle" TargetType="{x:Type ListBox}"> 
      <Setter Property="SelectionMode" Value="Multiple"></Setter> 
      <Setter Property="ItemContainerStyle"> 
       <Setter.Value> 
        <Style TargetType="{x:Type ListBoxItem}" > 
         <Setter Property="Margin" Value="2" /> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate TargetType="{x:Type ListBoxItem}"> 
            <CheckBox IsChecked="{Binding Path=xxxxxxxxxxx,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}">                    <ContentPresenter></ContentPresenter> 
            </CheckBox> 
           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </Setter.Value> 
      </Setter> 
     </Style> 

<ListBox Style="{StaticResource CheckBoxListStyle}" ItemsSource="{Binding Path=Configuration.ProductTypes}" DisplayMemberPath="ProductName" /> 

我的問題是,我收到來自數據庫中的所有產品類型並將其綁定到列表框的ItemsSource。我有一個產品類別,其中包含它所屬的產品類型列表。我需要根據產品的產品類型列表設置複選框的IsChecked屬性。通常我需要設置一個或多個複選框IsChecked屬性。產品可能屬於一種或多種產品類型。選擇模式是多選。如果用戶檢查額外的產品類型複選框..我需要得到總檢查列表框並將它們保存到數據庫...這是一個MVVM WPF應用程序...關於如何解決這種情況的任何想法...
在控制模板中IsChecked的路徑是什麼?

感謝 雷伊

讓我simplyfy我的問題:我需要複選框,文本塊列表框。文本塊數據上下文不同,複選框數據上下文不同。我的意思是他們從不同的對象獲取數據。不知道如何實現...

回答

2

讓我簡單地回答我的問題:我需要帶有複選框和文本塊的 列表框。 文本塊數據上下文不同 和複選框數據上下文是 不同。我的意思是他們從不同的對象得到他們的數據 。不知道如何 實現這個...

創建一個新類(一個視圖模型),其中包含兩個數據上下文(型號1和模型2)和數據綁定到它,也被稱爲MVVM模式。

0

您綁定到ListBox的ProductType類應具有一個名爲IsSelected或IsChecked的讀/寫屬性,您可以綁定到該屬性。然後,而不是使用ControlTemplate,使用ListBox.ItemTemplate上的DataTemplate並將CheckBox的IsChecked屬性綁定到該屬性。

+0

ProductType包含數據庫中所有可能的產品類型。基於產品ID,我將從DB獲得一個產品對象,其中包含它所屬的產品類型的子清單。沒有被選擇或缺陷的屬性。我將有一個產品名稱和ID。我會研究datatemplate的事情..謝謝... – Manohar 2009-11-28 05:54:47