2015-10-30 48 views
0

我试图在用户单击位于前一个单元格的按钮时更改进度条。但我无法做到这一点。Wpf Datagrid更改单击同一行中的元素

enter image description here

当用户点击同一行中的进度条值开始按钮必须改变。但我无法设法访问该元素。但Exp To Level的重要性并不在于绑定类的属性。它是一个DataGridTemplateColumn


我工作的当前状态,我可以到达行元素和发件人。但我不能超过这个。

private void start_Button(object sender, RoutedEventArgs e) 
    { 
     FrameworkElement ownerGui = ((FrameworkElement)sender); 
     MaClass obj = ownerGui.DataContext as MaClass; 
    } 

我想更改进度条的Value


这是我的XAML部分

  <DataGrid.Columns> 
      <DataGridTemplateColumn Header="Actions"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal"> 
          <Button Name="start_stop" Content="Start" Click="start_stop_Button"/> 
          <Button Name="log_button" Content="Logs" Click="log_Button"/> 
         </StackPanel> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
      <DataGridTemplateColumn Header="Exp To Level"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <Grid> 
          <ProgressBar Value="50" Width="auto"/> 
          <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">Exp To Level</TextBlock> 
         </Grid> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
     </DataGrid.Columns> 
+0

如果不是绑定类属性,那么它是在另一个ViewModel或窗口中定义的CLR或DP? – user1672994

+0

编辑我的问题@ user1672994 –

回答

0

可以在视图模型定义进度条value属性并绑定到进度条。然后点击按钮,您可以更新它的值。请参阅下面的参考代码:

private void start_Button(object sender, RoutedEventArgs e) 
{ 
    YourViewModel yourViewModel = (sender as Button).DataContext as YourViewModel ; 
    if (yourViewModel != null) 
    { 
     yourViewModel.ProgressBarValue = <<The value you want to set>>; 
    } 
} 
相关问题