public void Bind( DemoHostedGameInfo data )
    {
        var control = GetComponent<dfControl>();

        control.Find<dfLabel>( "Host" ).Text = data.Host;
        control.Find<dfLabel>( "Map" ).Text = data.Map;
        control.Find<dfLabel>( "Players" ).Text = string.Format( "{0}/{1}", data.Players, data.MaxPlayers );
        control.Find<dfLabel>( "Mode" ).Text = data.Mode;
        control.Find<dfTiledSprite>( "Connection" ).FillAmount = data.Health.Quantize( 0.25f );
    }
    private void initializeRowEvents( DemoHostedGameInfo item, dfControl row, int itemIndex )
    {
        row.MouseEnter += ( sender, args ) => { row.Focus(); };

        row.EnterFocus += ( sender, args ) =>
        {
            this.SelectedItem = item;
            if( SelectionChanged != null ) SelectionChanged( item );
            if( selectedItemProxy != null ) selectedItemProxy.Data = item;
        };

        row.KeyDown += ( sender, args ) =>
        {

            if( args.Used )
                return;

            if( args.KeyCode == KeyCode.DownArrow )
            {
                selectNext( itemIndex );
                args.Use();
            }
            else if( args.KeyCode == KeyCode.UpArrow )
            {
                selectPrevious( itemIndex );
                args.Use();
            }
            else if( args.KeyCode == KeyCode.Home )
            {
                selectFirst();
                args.Use();
            }
            else if( args.KeyCode == KeyCode.End )
            {
                selectLast();
                args.Use();
            }

        };
    }