Quantcast
Channel: wpftoolkit Discussions Rss Feed
Viewing all articles
Browse latest Browse all 2157

New Post: Launch ChildWindow when DataGrid row selected

$
0
0
Hi,

Here's an example. You define your ChildWindow into the WindowContainer and set its DataContext to the DataGrid.SelectedItem. You only need to open the ChildWindow when the Selection changes :
<Grid>
      <DataGrid x:Name="_dataGrid"
                ItemsSource="{Binding Players}"
                SelectedItem="{Binding SelectedPlayer}"
                SelectionChanged="DataGrid_SelectionChanged"/>

      <xctk:WindowContainer>
         <xctk:ChildWindow x:Name="_childWindow"
                           DataContext="{Binding SelectedItem, ElementName=_dataGrid}"
                           Caption="Player's details"
                           Left="75"
                           Top="150"
                           Width="275"
                           Height="125">
            <StackPanel>
               <StackPanel Orientation="Horizontal">
                  <TextBlock Text="FirstName:" />
                  <TextBlock Text="{Binding FirstName}"
                             Margin="10,0,0,0"/>
               </StackPanel>
               <StackPanel Orientation="Horizontal">
                  <TextBlock Text="LastName:" />
                  <TextBlock Text="{Binding LastName}"
                             Margin="10,0,0,0" />
               </StackPanel>
               <StackPanel Orientation="Horizontal">
                  <TextBlock Text="Number:" />
                  <TextBlock Text="{Binding Number}"
                             Margin="10,0,0,0" />
               </StackPanel>
            </StackPanel>
         </xctk:ChildWindow>
      </xctk:WindowContainer>
   </Grid>
 public partial class MainWindow : Window
  {
    public MainWindow()
    {
      InitializeComponent();

      _dataGrid.DataContext = this;
      this.Players = new List<Player>()
      {
        new Player() { FirstName = "PK", LastName = "Subban", Number = 76 },
        new Player() { FirstName = "Carey", LastName = "Price", Number = 31 },
        new Player() { FirstName = "Max", LastName = "Pacioretty", Number = 67 },
        new Player() { FirstName = "Alex", LastName = "Galchenyuk", Number = 27 },
      };
      this.SelectedPlayer = this.Players[ 1 ];
    }

    public Player SelectedPlayer
    {
      get;
      set;
    }

    public List<Player> Players
    {
      get;
      set;
    }

    private void DataGrid_SelectionChanged( object sender, SelectionChangedEventArgs e )
    {
      _childWindow.WindowState = Xceed.Wpf.Toolkit.WindowState.Open;
    }
  }

  public class Player
  {
    public string FirstName
    {
      get;
      set;
    }
    public string LastName
    {
      get;
      set;
    }
    public int Number
    {
      get;
      set;
    }
  }

Viewing all articles
Browse latest Browse all 2157

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>