2017-03-24 49 views
-2

I have Added the Template based on this link嗨,我有一個加入按鈕當我點擊它通過命令我將它添加到集合。Retieve並保存動態添加控件在WPF Xaml?

<ItemsControl ItemsSource="{Binding Collection}"> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <Grid DataContext="{StaticResource VieWModel}"> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="Auto" /> 
          </Grid.RowDefinitions> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="15*"/> 
           <ColumnDefinition Width="40*"/> 
          </Grid.ColumnDefinitions> 
          <Label Content="GH" Grid.Row="0" Grid.Column="0" VerticalContentAlignment="Center"></Label> 
          <tk:RadComboBox Grid.Row="0" Grid.Column="0" Margin="10" IsFilteringEnabled="True" Width="150" DisplayMemberPath="D" IsEditable="True" ItemsSource="{Binding GK}" SelectedItem="{Binding SK, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> 
           <i:Interaction.Triggers> 
            <i:EventTrigger EventName="SelectionChanged"> 
             <i:InvokeCommandAction Command="{Binding SelectionChangedCommand}" CommandParameter="{Binding}"/> 
            </i:EventTrigger> 
           </i:Interaction.Triggers> 
          </tk:RadComboBox> 
          <Label Content="HB" Grid.Row="0" Grid.Column="1" VerticalContentAlignment="Center"></Label> 
          <tk:RadComboBox Grid.Row="0" Grid.Column="1" Margin="10" IsFilteringEnabled="True" Name="cb" Width="350" IsEditable="True" DisplayMemberPath="D" ItemsSource="{Binding VR}" SelectedItem="{Binding VR1,Mode=TwoWay}"> 
          </tk:RadComboBox> 
         </Grid> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 

視圖模型示例代碼

 // Property ofor selected Item in combox1 
      Public ValBase SK{get;set;} 

     //Property off combobox1 binding 
     Public ValBase GK{get;set;} 

     // Property ofor selected Item in combox2 
     Public ValBase VR1{get; set;} 

     //Property ofr combobox2 binding 
     Public ValBase VR{get;set;} 

     Public void AddButton(object obj) 
     { 
      var item =new collectionbase(); 
      Collection.Add(item) 
     } 

每當我點擊添加按鈕這個了Itemplate將增加。

MyRequirement

  1. 當我點擊添加按鈕首次,模板應得到補充
  2. 當我點擊添加按鈕對於以前生成的控件必須有包含第二次值,只有控件應該被添加到一個集合,然後新的控件應該創建
  3. 而我不知道如何保存這些值動態創建交流ollection

我用盡想法如何實現這個任何人都可以幫助。 MVVM模式

+0

你不supposted時給出的ItemsSource設置的DataContext的DataTemplate中,更改accoring到MVVM,看到我的回答 – WPFUser

回答

0

我想你有在MainViewModel和命令爲添加模型集合。

private Model _lastAdded; 
public Model LastAdded 
{ 
    get{return _lastAdded;} 
    set{_lastAdded = value;} 
} 

private void AddCommand(object obj) 
{ 
    if(_lastAdded != null && _lastAdded.SelectedValue != null) 
    { 
    var newItem = new Model(); 
    Collection.Add(newItem); 
    _lastAdded = newItem; 
    } 
    else 
    { 
    //Show message 
    } 

} 
+0

哪裏添加LastAdded你能解釋一下,我希望它不會添加第一次 –

+0

@SundarStalin你有Collection和AddCommand方法的同一個類。 – WPFUser

+0

我已經將它添加到MyCollection。當我添加下一次我的組合框必須只有值,那麼它應該得到保存。 –

0

使用選擇Class.I已經使用CurrentInstance綁定的Collection中的工作現在罰款