2012-08-13 36 views
0

我有一个ObservableCollection中的字符串列表,我想将它绑定到一个datagrid,listbox或其他东西,这将允许我在列表中的一个项目上添加一个双击事件。如果你不能说,我是新来的WPF!ObservableCollection WPF MVVM中的字符串列表

代码:

private ObservableCollection<string> _searchResults; 
    public ObservableCollection<string> SearchResults 
    { 
     get { return _searchResults; } 
     set 
     { 
      _searchResults = value; 
      OnPropertyChanged("SearchResults"); 
     } 
    } 

<Grid> 
    <DataGrid AutoGenerateColumns="False" 
       Name="MyGrid" 
       Height="400" 
       Width="400" 
       ItemsSource="{Binding SearchResults}" 
       SelectedItem="{Binding MySelectedItemProperty, UpdateSourceTrigger=PropertyChanged}"/> 

</Grid> 

作为一个方面说明,我也使用Caliburn.Micro

回答

1

在你看来,你会为你的Datagrid做这样的事情:

<DataGrid AutoGenerateColumns="False" Name="MyGrid" 
    ItemsSource="{Binding MyListofStrings}" 
    SelectedItem="{Binding MySelectedItemProperty, UpdateSourceTrigger=PropertyChanged}" 
       CommandHelper:MouseDoubleClick.Command="{Binding MyEditCommand}"> 

然后在您的视图模型中:

  private ObservableCollection<MyStrings> _MyListofStrings; 
     public ObservableCollection<MyStrings> MyListofStrings 
     { 
      get { return _MyListofStrings; } 
      set 
      { 
        _MyListofStrings = value; 
       OnPropertyChanged("MyListofStrings");  //Used for 2 way binding. 
      } 
     } 

然后用您的数据类型填充“MyListofStrings”。

+0

您应该提及'CommandHelper:MouseDoubleClick.Command'的来源。它不是标准WPF的一部分。 – 2012-08-13 19:16:46

+0

那么你在哪里得到?我正在创建私人ObservableCollection s =新的ObservableCollection 。 – Josh 2012-08-13 19:31:55

+0

另外网格没有被填充。 – Josh 2012-08-13 19:32:40

相关问题