我希望你能幫助我解開,我通過使用組合框有一個問題。如何在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演示,但沒有。
感謝您的任何見解!
由於該工作就像一個魅力我更新了XAML反映: <組合框X:名稱= 「cmboInvType」 的ItemsSource = 「{結合}」 的DisplayMemberPath = 「的參與」 SelectedValuePath = 「的參與」 電網。Row =「2」Height =「32」HorizontalAlignment =「Left」Margin =「27,5,0,0」VerticalAlignment =「Top」Width =「204」/> 並設置該變量爲: public string參與; involvement = cmboInvType.SelectedValue.ToString(); – rlcrews 2010-06-28 17:19:38