2016-05-30 51 views
0

我有一個列表框和一個DataTemplate生成的列表框控件:如何訪問控件在像這樣定義由一個ItemTemplate

Dim propertyList = (from a In db.properties 
       select a).ToList() 
listbox.datacontext = propertyList 

<Window.Resources> 
    <DataTemplate x:Key="propertyTemplate"> 
     <StackPanel Margin="8" Orientation="Horizontal"> 
      <CheckBox Name="Chosen"/> 
      <TextBlock Text="{Binding Path=MAP}" Margin="10,0,0,0"/> 
     </StackPanel> 
    </DataTemplate> 
    </Window.Resources> 
     <ListBox x:Name="listBox" HorizontalAlignment="Left" Height="100"  Margin="388,203,0,0" VerticalAlignment="Top" Width="522" 
      ItemsSource="{Binding}" 
      ItemTemplate="{StaticResource propertyTemplate}"/> 

我使用LINQ查詢填充列表框

我想檢查並設置列表框中每個項目的「選中」複選框的值。有沒有辦法讓我做到這一點?

回答

1

不要這樣做,將IsChecked綁定到您的項目類的屬性,然後迭代您的源列表。

+0

LinqtoSQL創建我的項目類,所以我猜我需要爲此列表創建另一個類,它從LinqToSql類繼承,併爲其添加一個布爾字段。我需要創建一個項目自定義構造函數爲了將其轉換爲新類型,或者有更好的方法來做到這一點? (或者我只是在這裏錯誤的方向) – Rolan

+0

你可能想要將你的模型(數據庫類)包含在具有該附加屬性的視圖模型類中。 –

+0

(視圖模型類有一個包含模型的屬性,如果不清楚的話)。 –

相關問題