Ok, here is your current grid, with the candidates for the number 9 marked.
9? 9? 9? | 5 9? 9? | * 1 8
8 9? 4 | 9? 2 1 | 6 5 3
5 1 * | * 8 3 | * 9 *
-----------------------
* 2 * | 8 1 * | * 6 9
6 9? 7 | 9? 5 2 | 3 8 1
1 8 9? | 9? 9? 6 | * 4 *
-----------------------
* 6 * | 1 * 8 | 9 7 5
9? 5 8 | 2 9? 9? | 1 3 *
7 9? 1 | 9? 9? 5 | 8 2 *
Now there are two X-wings, I'll the one which doesn't help you much, but it might learn you the technique which you can use to find the second one. (number 9 aswell)
To be able to speak of an X-Wing you first need to have only two cells for a certain number in a column).
If you find one such column then you haven't enough yet, you need to find another column which follows the same rule.
This does not nessesarily mean an X-wing though, there is an extra rule: the candidate-cells of the first column has to be on the same row as the candidate-cells of the second column.
To show you the example:
column 1: 9 is possible in r1c1 and r1c6.
column 6: 9 is possible in r8c1 and r8c6
As you can see the rows match so we have an X-wing.
This allows you to remove the 9 as a candiate from all other cells on row 1 and row 6.
Why? :
* Assume r1c1 is not 9, then r8c6 has to be 9, else it is impossible for column 6 to have a 9.
* Assume r1c6 is not 9, then r8c1 has to be 9, else it is impossible for column 1 to have a 9.
You see the pattern?
(Note: the same goes for rows too, just replace all instances of column with row, and all instances of row with column)