2013-11-05 18 views
0

首先,對我的英語感到抱歉,因爲它不是我的母語。我會盡量具體。我通常使用Windows Forms在連接到我的VB項目的mdf中創建存儲過程。我所做的是添加一個dbml文件,然後將我的存儲過程拖放到dbml設計器中的函數列中。然後,我能夠做這樣的事情:(在這種情況下,我的DBML文件名是「教程數據)試圖將使用dbml的存儲過程函數結果通過Item傳遞給WPF的問題源

Public Class Form1 

    Private status As New TutorialsDataDataContext 

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 

    Dim rec = status.TutorialStatus() 

    ComboBox1.DataSource = rec 

    End Sub 
End Class 

TutorialStatus()返回3個值像那樣的代碼將在Windows工作。 Form項目,當我運行它時,它會顯示數據庫的那些值。問題是「DataSource」屬性似乎不存在於WPF應用程序中,而最類似它的是「ItemsSources」屬性但問題是,這個屬性返回閱讀三個值:「tutorial_keeper_real.tutorialstatusresult」在ComboBox

,我在WPF項目寫的代碼,如下所示:

Class MainWindow 

    Private status As New TutorialsDataDataContext 


    Private Sub winMain_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded 
    Dim rec 

    rec = status.TutorialStatus() 

    ComboBox1.ItemsSource = rec 


    End Sub 
End Class 

它將函數所做的操作返回給數據庫,但不返回實際值。有什麼辦法來實現我使用WPF在Windows Form項目中做什麼?請不要告訴我通過Ado.net或類似的東西來做到這一點,因爲我知道這一點,但我寧願這樣做......或者我寧願回到Windows Form。那麼,謝謝大家!對不起我可憐的英語......這不是我的母語。

PD。如果有人有關於我如何創建一個基於存儲過程中的功能,使用DBML任何疑問,可以看到這部影片,因爲這傢伙做得很好:

Youtube video

+0

好吧,我問MSDN。當他們迴應時,我會立即發佈解決方案。如果有人願意幫助,我會很感激。 – SamyCode

回答

1

好了,我終於挺過來了。我收到了來自MSDN的這個準確的答案:

「你可以從程序中獲得原始數據,它看起來不錯,但是在WPF中,我們應該綁定你想在XAML代碼或代碼後面顯示的屬性。我們要在組合框中顯示的ID屬性,」

XAML代碼:

<StackPanel> 
    <ComboBox x:Name="Combo" DisplayMemberPath="ID" /> 
</StackPanel> 

C#代碼(可轉換爲Visual Basic中使用的工具)

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     List<Raw> RawData = new List<Raw>() 
     { 
      new Raw(){SearchData = "Jimmy", ID="001"}, 
      new Raw(){SearchData = "Jack", ID="002"}, 
      new Raw(){SearchData = "Jim", ID="003"}, 
      new Raw(){SearchData = "Jerry", ID="004"}, 
      new Raw(){SearchData = "Jason", ID="005"}, 
      new Raw(){SearchData = "Jeff", ID="006"}, 
     }; 
     this.Combo.ItemsSource = RawData; 
    } 
} 

public class Raw 
{ 
    public string SearchData { get; set; } 
    public string ID { get; set; } 
} 

釷結果將是一個組合框顯示ID的!

就是這樣!它真的幫助我,並希望這對你們來說也是一樣。

相關問題