2017-10-14 2 views
0

xamarin 양식의 검색 창을 사용하고 있습니다. 크로스바를 클릭하여 검색 창에서 검색 텍스트를 제거 할 수 없습니다. 검색 막대에서 취소 텍스트를 제거하기 위해 사용자 정의 렌더러를 사용하고 있습니다. 해당 렌더러를 사용할 때 텍스트를 삭제할 수 없습니다. 해당 렌더러를 제거하면 제대로 작동합니다. 렌더러 파일에서 내가 뭘 잘못했는지. 다음은 검색 막대 옆의 취소 버튼을 숨기는 렌더러의 샘플 코드입니다.xamarin에서 검색 막대 삭제 텍스트가 작동하지 않습니다.

렌더러 샘플 코드 :

protected override void OnElementPropertyChanged(object sender, PropertyChnagedEventArgs e) 
    { 

     Control.ShowCancelButton = false; 
    } 

enter image description here

나는 그것이 자 마린 IOS에서 작동하지 않는 검색 창에 십자가 이미지를 클릭하여 검색 창에 텍스트를 제거하려고하지만 IOS에서 잘 작동합니다.

샘플 코드 : 여기

<StackLayout Grid.Column = "0" Orientation = "Horizontal"> 
<Image Source = "backarrow.png" HorizontalOptions = "StartAndExpand" VerticalOptions = "CenterAndExpand" />       
<controls:CustomSearchbar x:Name = "CustomSearchbar" BackgroundColor ="Transparent" Text ="{Binding SearchTag}" SearchCommand ="{Binding RestaurantSearchCommand}" GHorizontalOptions = "StartAndExpand" VerticalOptions = "CenterAndExpand" > 

내가 검색 창을 위해 사용하고있는 코드입니다. 여기 'customsearchbar'클래스는 searchrenderer에서 상속됩니다.

+0

는 당신도 당신의 코드를 공유 할 수 우리의 XAML은 검색 창을 호출하는 데 사용하는? – cvanbeek

+0

안녕하세요, cvanbeek, 내가 사용하고있는 샘플 코드를 추가하고 있습니다. – Deepak

+0

문제점을 재현 할 수 없습니다. 그것은 내 맘대로 (일부 맞춤법 오류가) 코드와 함께 작동합니다. 나는 당신을 위해 나의 코드를 올린다. 희망이 도움이됩니다! –

답변

0

나를 위해 잘 작동합니다. 아이폰 OS 플랫폼에서

using Xamarin.Forms; 

namespace Kevin_XF 
{ 
    public class MySearchBar : SearchBar 
    { 

    } 
} 

MySearchBarRenderer.cs : PCL에서

MySearchBar.cs : MainPage에서

using Xamarin.Forms; 
using Xamarin.Forms.Platform.iOS; 
using Kevin_XF.iOS; 
using Kevin_XF; 
using System.ComponentModel; 

[assembly: ExportRenderer(typeof(MySearchBar),typeof(MySearchBarRenderer))] 
namespace Kevin_XF.iOS 
{ 
    public class MySearchBarRenderer: SearchBarRenderer 
    { 

     protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) 
     { 
      base.OnElementPropertyChanged(sender, e); 

      if (Control != null) 
      { 
       Control.ShowsCancelButton = false; 
      } 
     } 
    } 
} 

XAML 코드

여기 내 예를 들어 코드입니다 .xaml :

<StackLayout> 
     <local:MySearchBar x:Name = "CustomSearchbar" BackgroundColor ="Transparent" HorizontalOptions = "StartAndExpand" VerticalOptions = "CenterAndExpand" /> 
</StackLayout> 

그것은 다음과 같이 작동

enter image description here

+0

@Deepak, 내 대답이 도움이 되었습니까? –

관련 문제