2010-02-21 36 views
0

wpf的新功能和通過學習曲線。 我有一個用戶控件工具欄保存按鈕和一個文本框。 我試圖做到的,是當我按下保存按鈕,工具欄,我應該在我將要保存和我已保存的客戶(CustomerView用戶控件) 我似乎文本框記錄如下問題通過命令綁定。可以幫助

有2個問題

1)該SaveCommand不上鉤我想我已經迷上它

2)是不是寫的動作文本框。

你能告訴我我要去哪裏嗎? 非常感謝!

MainWindow.xaml

<Window x:Class="MyCompany.CustomerStore.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:view="clr-namespace:MyCompany.CustomerStore.Views" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <view:CustomerView></view:CustomerView> 
    </Grid> 

CustomerView.xaml 


    <UserControl x:Class="MyCompany.CustomerStore.Views.CustomerView" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"> 
    <Grid> 
     <DockPanel LastChildFill="True"> 
      <ToolBar DockPanel.Dock="Top"> 
       <Button Command="{Binding Path=SaveCommand}">Save</Button> 
      </ToolBar> 
      <TextBox Name="txtPrintAction" Text="{Binding CustomerLog, Mode=TwoWay}"></TextBox> 
     </DockPanel> 
    </Grid> 

CustomerModel.cs 


public class CustomerModel 
    { 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public string CustomerLog { get; set; } 
    } 

    CustomerViewModel.cs 

    public class CustomerViewModel:WorkspaceViewModel,ICustomerViewModel 
    { 
     readonly CustomerModel _customerModel; 

     RelayCommand _saveCommand; 

     public CustomerViewModel(CustomerModel customer) 
     { 
      _customerModel = customer; 
     } 
     public string FirstName 
     { 
      get { return _customerModel.FirstName; } 
      set 
      {     
       _customerModel.FirstName = value; 
       base.OnPropertyChanged("FirstName"); 
      } 
     } 
     public string LastName 
     { 
      get { return _customerModel.LastName; } 
      set 
      { 
       _customerModel.LastName = value; 
       base.OnPropertyChanged("LastName"); 
      } 
     } 
     public string CustomerLog 
     { 
      get { return _customerModel.CustomerLog; } 
      set 
      { 
       _customerModel.CustomerLog = value; 
       base.OnPropertyChanged("CustomerLog"); 
      } 
     } 
     public ICommand SaveCommand 
     { 
      get 
      { 
       if (_saveCommand == null) 
       { 
        _saveCommand = new RelayCommand(param => Save(), param => CanSave); 
       } 
       return _saveCommand; 
      } 
     } 

     private void Save() 
     { 
      AppendToLog("I am about to save"); 

      //Pretend we have saved the customer 

      AppendToLog("CustomerSaved"); 
     } 

     internal void AppendToLog(string text) 
     { 
      _customerModel.CustomerLog += text + Environment.NewLine; ; 
      OnPropertyChanged("CustomerLog"); 
     } 

     static bool CanSave 
     { 
      get 
      { 
       return true; 
      } 
     } 

回答

0

你在哪裏申報

X的觀點之間的關係:類=「MyCompany.CustomerStore。 Views.Customer查看

和模型類CustomerViewModel?

我沒有看到任何地方。

我想你需要將視圖的DataContext設置爲模型。

+0

對於遲到的回覆感到抱歉。是DataContext感謝您指出它的問題。 – user9969