CustomBinding MarkupExtension의 Resharper 해결 경로를 만드는 방법
일반 WPF 바인딩과 동일하게 동작하지만 몇 가지 작업을 수행합니다(다른 기본값을 사용하거나 동작을 추가하는 등).코드는 다음과 같습니다.
public class CustomBindingExtension : Binding
{
.. some extra properties and maybe overrides ...
}
XAML-intellisense를 포함하여 모두 정상적으로 동작하지만 Resharper가 바인딩 경로를 올바르게 해결할 수 없습니다.예: 이 코드를 사용하면 [Strg]+'현재'를 클릭합니다.Text' 및 Resharper를 사용하면 vs2010에서 CurrentText-Property를 정의하는 코드로 이동할 수 있습니다.
<UserControl x:Name="uc" ...>
<TextBox Text="{Binding ViewModel.CurrentText, ElementName=uc}" />
</UserControl>
그러나 런타임에 올바르게 동작하는 바인딩을 사용하면 'Current'를 맴돌 때 툴팁을 얻을 수 있습니다.텍스트가 무슨 MS인지 알려준다.내부의.Design.메타데이터.반사TypeNode' 및 [Strg]+ 경유 내비게이션 없음클릭.
<UserControl x:Name="uc" ...>
<TextBox Text="{util:CustomBinding ViewModel.CurrentText, ElementName=uc}" />
</UserControl>
나는 다음과 같은 것을 시도했다.
Binding Base와 Binding Base의 원래 클래스도 살펴보았지만 코드와의 차이를 찾을 수 없었습니다.여기서 도움이 될 만한 아이디어가 있나요?아니면 단순히 Binding-MarkupExtension의 특수한 처리로 마크업 익스텐션을 사용할 수 없는 것입니까?
업데이트 16.03.2011: 버그 또는 Resharper 부족일 수도 있습니다.Jetbrains는 이 문제를 조사하고 있습니다.http://youtrack.jetbrains.net/issue/RSRP-230607
업데이트 10.12.2013: 한편, 이 기능은 정상적으로 동작하고 있는 것 같습니다(R# 7.1.3, 이전 버전에서도 동작하고 있을 가능성이 있습니다).BindingDecoratorBase의 접근방식을 사용하고 있으며, 매우 마음에 듭니다.Markup Extension이 'Binding'으로 끝나는 경우에만 작동할지 모르지만, 내 Markup Extension은 작동하기 때문에 저는 기쁩니다.
사실 현재 버전의 R#에서는 불가능하며, 안타깝게도 다음 R# 6.1 릴리즈에는 아직 기능이 없습니다.
이 기능에는 많은 인프라스트럭처 변경이 필요하지만, 델의 리스트에 기재되어 있기 때문에 R#7에 실장될 것으로 예상됩니다.[CustomBindingMarkup]
그리고.[BindingPath]
(용)path
컨스트럭터 파라미터 및Path
됩니다.
불편을 드려 죄송합니다.
올바른 네임스페이스를 사용하여 커스텀 마크업 확장에 액세스해야 합니다.
<UserControl x:Name="uc" ...
xmlns:ext="clr-ns:YourProjectNamespace">
<TextBox Text="{ext:CustomBinding ViewModel.CurrentText, ElementName=uc}" />
</UserControl>
다음은 커스텀 마크업 확장자 작성에 관한 좋은 기사입니다.
R#을 속이는 한 가지 방법은 바인딩이라고 명명하는 것입니다.
public class Binding : MarkupExtension
{
public Binding()
{
}
public Binding(string path)
{
Path = path;
}
public string Path { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
return 5;
}
}
그러면 R#의 표준 바인딩과 동일하게 동작합니다.
<TextBlock Text="{custom:Binding SomeProp}" />
언급URL : https://stackoverflow.com/questions/5265281/how-to-make-resharper-resolve-path-for-custombinding-markupextension
'programing' 카테고리의 다른 글
Azure 공유 액세스 서명 - 서명이 일치하지 않음 (0) | 2023.04.21 |
---|---|
UITapGestureRecognizer가 UITableView didSelectRowAt를 중단합니다.인덱스 패스 (0) | 2023.04.21 |
Azure Web 앱은 매우 느리다 (0) | 2023.04.21 |
'치명적' 수신:Git repo 원격 추가를 시도할 때 Git 저장소가 아님" (0) | 2023.04.21 |
백그라운드에서 앱을 열 때 ViewDidEar가 호출되지 않음 (0) | 2023.04.21 |