2013-08-27 132 views
-1

我正在使用devexpress,我想用ListBox做一個綁定,但是我有一個錯誤。這裏我的代碼:WPF綁定Listbox layoutpanel

<ListBox x:Name="_list" >        
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <dxd:LayoutPanel 
       Caption="{Binding nameList}" 
       AllowHide ="False" AllowFloat="False"            
       GotFocus="panel_GotFocus" > 

       <TextBox Text="Hello" /> 

      </dxd:LayoutPanel>         

     </DataTemplate> 
    </ListBox.ItemTemplate>        
</ListBox>  

使用此代碼,Caption {Binding nameList}爲空。

我試過這個。

<ListBox x:Name="_list" >        
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <Grid> 
        <TextBox Text="{Binding nameList}" /> 
       </Grid>                  
      </DataTemplate> 
     </ListBox.ItemTemplate>        
    </ListBox> 

在這種情況下,TextBox中的文本是正確的,我需要使用第一個代碼。

+0

你至少應該提到你在這裏使用的DevExpress。 –

回答

0

您似乎對如何使用這個ListBox有點困惑。首先,您需要一個集合屬性來綁定到ListBox.ItemsSource屬性。比方說,你有User對象稱爲Users的集合:

<ListBox ItemSource="{Binding Users}" /> 

現在,我們要定義每個User應該如何顯示...的User類的所有屬性將提供給DataTemplateBinding。假設User類有兩個屬性; NameAge

<DataTemplate DataType="{x:Type YourDataTypeNamespace:User}"> 
    <StackPanel> 
     <TextBox Text="{Binding Name}" /> 
     <TextBox Text="{Binding Age}" /> 
    </StackPanel> 
</DataTemplate> 

然後把他們放在一起:

<ListBox ItemSource="{Binding Users}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate DataType="{x:Type YourDataTypeNamespace:User}"> 
      <StackPanel> 
       <TextBox Text="{Binding Name}" /> 
       <TextBox Text="{Binding Age}" /> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate>        
</ListBox> 
+0

我試過了,但它不起作用,我認爲問題是layoutPanel,因爲它是一個devexpress對象,並且其功能是不同的。如果我使用或其他本地對象,它正在工作。 – user1253414

相關問題