2017-07-15 15 views
0

私はこの質問をすでに聞いてきましたが、今私は何をしようとしているのかをよく理解しています。私はmainwindowクラスのWPFアプリケーションを持っています。そこから​​を作成できます。たとえば、accountタブがあります。私の問題は、 "アカウントの編集" の "アカウントの追加"ボタンのためにaccount.xamlを使用したいと思っています。account.xaml.vbどうすれば編集モードか追加モードかを知ることができますか?私が「編集アカウント」をクリックすると表示されているダイアログボックスから編集している。ここメインウィンドウからデータを渡す> tabitem> scroller> frame> content

mainwindow.xaml.vb

Private Sub btn_AddAccount_Click(sender As Object, e As 
    RoutedEventArgs) Handles btn_AddAccount.Click 

    Dim tab_NewAccount As New C1TabItem() 
    Dim frame_NewAccount As New Frame() 
    Dim scroller_NewAccount As New ScrollViewer() 
    Dim str_Name As String = "Add Account" 
    Dim str_NavigationLink As String = "PM_AddAccount.xaml" 
    Dim account As New PM_AddAccount 
    account.mode = 1 

    'Add and name new tab 
    tab_NewAccount.Header = tabcontrol.Items.Count + 1 & ". " & str_Name 
    tab_NewAccount.CanUserClose = True 
    tabcontrol.Items.Add(tab_NewAccount) 

    'Add frame to the tab and include new page 
    With frame_NewAccount 
     .NavigationService.Navigate(New Uri(str_NavigationLink, UriKind.Relative)) 
     .HorizontalAlignment = HorizontalAlignment.Stretch 
     .VerticalAlignment = VerticalAlignment.Top 
     .Margin = New Thickness(0, 0, 0, 0) 
    End With 

    With scroller_NewAccount 
     .CanContentScroll = vbTrue 
     .VerticalScrollBarVisibility = ScrollBarVisibility.Auto 
     .HorizontalScrollBarVisibility = ScrollBarVisibility.Auto 
     .Content = frame_NewAccount 
    End With 

    tab_NewAccount.Content = scroller_NewAccount 
    ' Set new tab as active tab 
    tabcontrol.SelectedIndex = tabcontrol.Items.IndexOf(TAB) 

End Sub 

編集で作成されているタブです:? だから私はAccount.xaml.vb公共性を付与しようとした後、それをmainwindow.xaml.vbに設定します。ただし、値はgeではありませんtting set - mainwindow.xaml.vbaccount変数は何も接続されていませんが、frame.content = accountのいずれかが動作しません。

Class Account 

Public Property mode As AccountMode 
    Get 
     Return mode 
    End Get 
    Set(value As AccountMode) 
     value = mode 
    End Set 
End Property 

Public Enum AccountMode 
    None = 0 
    Add = 1 
    Edit = 2 
End Enum 

End Class 

答えて

0

列挙型を定義するには、モードと呼ばれるaccount.xaml.vbにプロパティを追加し、必要に応じて適切に設定しAccountMode

Public Enum AccountMode 
    None = 0 
    Add = 1 
    Edit = 0 
End Enum 

と呼ばれます。

どのアカウントを編集しているのか、どのように編集しているのかは、あいまいです。通常、コントロールはデータソースにバインドされ、データソースには他のすべてのレコードと一意になるような種類のキーまたは識別子があります。たとえば、データベースからデータをバインドする場合、主キーおよび/またはIDフィールドが存在します。

あなたのデータは次のようにモデルクラスにバインドされます:

Public Class Account 
    [Key] 
    Public Property Id As Integer 
    Public Property FirstName As String 
    Public Property LastName As String 
End Class 

同様に、あなたのAccountクラスでモードを持っている代わりに、あなたがアカウント場合は、新しいアカウントを追加している検知するロジックを組み込むことができます。 Id = 0。Account.Id> 0の場合、既存のアカウントを編集しています。

+0

お返事ありがとうございます。私はどこでenumを宣言しますか? – Sharpmetalobject

+0

どこにでも宣言できますが、最も一般的には独自のクラスファイルで宣言できます。 –

関連する問題