2013-02-21 143 views
1

我在我的應用程序 (IDE:Visual Studio 2010,Language:C#,Technology:WPF和MVVM)中綁定列表框的選定項目時遇到問題。在WPF中的內部列表框中綁定選定項目

要求:有一個接口列表和另一個連接到每個接口的設備列表 。顯示這些2所列出的圖案是 如下:

接口1

Device 1 

Device 2 

Device 3 

接口2

Device 1 

Device 2 

接口3

Device 1 

Device 2 

Device 3 

Device 4 

等。

如果選擇了任何接口,則默認情況下第一個設備必須爲 ,如果選擇了任何設備,則必須選擇相應的接口 。我能夠做第一部分,但不能做第二部分。 如何使所選項目在設備的所有內部列表 中唯一?

我想顯示上述名單的擴展,其中每個exapander將具有以下格式的列表: 擴展頭接口名稱 擴管器主體:連接設備

我希望我明確的名單。

請不要告訴我,如果有任何wpf控制,或者我應該爲此開發 新的ListBox?

問候 Kruthika

回答

0

根據這一要求:

我怎樣才能使所選擇的項目是在所有設備上的內 名單獨特之處?

你應該只定義組在一個大的列表框中:

public class Interface 
{ 
    public string Name { get; set; } 
    public List<Device> Devices { get; set; } 
} 

public class Device 
{ 
    public string Name { get; set; } 
} 

<CollectionViewSource x:Key="interfaces" Source="{Binding SomePropertyGivingInterfaces}" > 
    <CollectionViewSource.GroupDescriptions> 
     <PropertyGroupDescription PropertyName="Name" /> 
    </CollectionViewSource.GroupDescriptions> 
</CollectionViewSource> 

<DataTemplate x:Key="interfaceTemplate" DataType="Interface"> 
    <StackPanel Orientation="Horizontal"> 
     <TextBlock Text="{Binding Name}" /> 
    </StackPanel> 
</DataTemplate> 

<ListBox ItemsSource="{Binding Source={StaticResource interfaces}}"> 
    <ListBox.GroupStyle> 
     <GroupStyle HeaderTemplate="{StaticResource interfaceTemplate}" /> 
    </ListBox.GroupStyle> 
    <ListBox.ItemTemplate> 
     <DataTemplate DataType="Device"> 
      <ListBox ItemsSource="{Binding Devices}"> 
       <ListBox.ItemTemplate> 
        <DataTemplate DataType="Device"> 
         <TextBlock Text="{Binding Name}" /> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

然後,當你只能選擇一個設備。

+0

謝謝你的迴應。如果此解決方案適用於我的應用,我會通知您。 – user679709 2013-02-21 14:26:28

相關問題