2010-06-28 70 views
0

我希望你能幫助我解開,我通過使用組合框有一個問題。如何在WPF組合框的selectedItem屬性賦值給一個變量

在我的項目,我需要從一個集消費價值,並讓這些項目我的組合框中顯示。在這個時候,我已經建立了一個可觀察的集合,只是包含不同類型的參與

公衆的ObservableCollection myinvolvement =新的ObservableCollection();

private void fillList()/
    { 
     involvementDataModel i1 = new involvementDataModel(); 
     i1.involvements = "Witness"; 

     involvementDataModel i2 = new involvementDataModel(); 
     i2.involvements = "Suspect"; 

     involvementDataModel i3 = new involvementDataModel(); 
     i3.involvements = "Victim"; 

     involvementDataModel i4 = new involvementDataModel(); 
     i4.involvements = "Other"; 

     myinvolvement.Add(i1); 
     myinvolvement.Add(i2); 
     myinvolvement.Add(i3); 
     myinvolvement.Add(i4); 
    } 

我已經綁定到一個組合框使用:cmboInvType.ItemsSource = myinvolvement;

我的XAML中

我的組合框設置爲

<ComboBox x:Name="cmboInvType" ItemsSource="{Binding}" Grid.Row="2" Height="32" HorizontalAlignment="Left" Margin="27,5,0,0" VerticalAlignment="Top" Width="204" SelectionChanged="cmboInvType_SelectionChanged"> 
     <ComboBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel> 
        <TextBlock x:Name="cmbvalue" TextAlignment="Center" Text="{Binding involvements}"/> 
       </StackPanel> 
      </DataTemplate> 
     </ComboBox.ItemTemplate> 
    </ComboBox> 

這似乎很好地工作,我可以看到列表中的每個唯一值然而,當我從組合框,我需要傳遞一個值這個值可以發送回主應用程序。我好去對數據部分的傳遞但是我堅持就如何捕捉當前選擇的值。

每當我從組合框中選擇一個值,我得到數據路徑(WinODS_ClientApp.Data.involvementDataModel)的返回而不是選定的值?

我如何去在一個字符串轉換這個正確的字符串格式?

到目前爲止,我已經試過:

對一個SelectionChangedEventArgs
cmboInvType.SelectedItem.ToString()

然而,這似乎仍然是返回的路徑與價值的地方。

看完記得這個地方,我在過去與數據模板在這樣的情況:我需要選擇的值,並將其傳遞到另一個變量解決了這一對UI演示,但沒有。

感謝您的任何見解!

回答

1

請檢查

SelectedValuePath

您可以配置屬性名作爲路徑和的SelectedValue你會得到對象的屬性值。

+0

由於該工作就像一個魅力我更新了XAML反映: <組合框X:名稱= 「cmboInvType」 的ItemsSource = 「{結合}」 的DisplayMemberPath = 「的參與」 SelectedValuePath = 「的參與」 電網。Row =「2」Height =「32」Horizo​​ntalAlignment =「Left」Margin =「27,5,0,0」VerticalAlignment =「Top」Width =「204」/> 並設置該變量爲: public string參與; involvement = cmboInvType.SelectedValue.ToString(); – rlcrews 2010-06-28 17:19:38

0

ComboBox.SelectedItem,因爲這是當前選擇的項目返回involvementDataModel一個實例。僅僅因爲在渲染與選擇內容無關時使用了一個屬性來獲取項目的文本。

如果您想獲取所選項目的文本,我只需獲取所選項目,將其轉換爲involvementDataModel,然後獲取所需屬性的值。

相關問題