나는이 항목 템플릿을 사용하여 ListView에 있습니다XAML 바인딩 인텔리
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<views:ProjectListEntry />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
ProjectListEntry
상당히 복잡하고 서로의 ListView에 사용됩니다, 그래서 자신의 파일에 있습니다 . 나는이처럼 설정 한 : 당신이 볼 수 있듯이
<ContentView
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
...
BindingContext="{x:Static vms:DesignTimeData.ProjectListEntryVm}">
는, 바인딩 인텔리 (ReSharper에서 사용) 얻을, 나는 DesignTimeData 클래스의 정적 멤버로 BindingContext
을 설정했습니다. 이것은 내 페이지 (런타임에 BindingContext를 대체하는 곳)에서 잘 작동하지만 ListView에서 사용되는 ContentViews의 경우 ContentView의 BindingContext가 ViewCell에서 상속 된 것처럼 보입니다. 즉, 내 ContentView의 명시 적 BindingContext는 실제로 ListView에 의해 ViewCell에 설정된 BindingContext를 재정의하고 모든 내 목록 요소는 런타임에 정적 디자인 타임 데이터를 반영합니다. 그러나 BindingContext를 제거하면 ContentView 파일 내부에 바인딩하는 멤버에 인텔리 센스가 없습니다.
ContentView에서 바인딩 용 Intellisense를 얻는 간단한 방법이 있습니까?
(언급했듯이 ContentView가 상당히 복잡하고 여러 목록에 사용되기 때문에 ListView 정의에서 ContentView를 인라인 할 수 없습니다. 일부 종류의 VM 로케이터도 사용할 수 없습니다. 바인딩, 난 "전체"MVVM을 사용하지 않는거야 - 대신 Redux 같은 아키텍처를 사용하고 있습니다. 그리고 VM을 로케이터 어쨌든 위의 작동하지 않는 동일한 이유로이 사건에 대한 작동하지 않을 것 같아요.)
은 (내가 어떤 대답을하지 않았다 어디 Xamarin Forums에서 크로스 기록했다.)