템플릿 10을 사용하는 UWP의 주문 양식은 주문에 제품을 추가합니다. 이 오류는 관련 XAML 조각이 OrderViewModel과 ProductViewModelUWP 앱의 ViewModel에서 속성을 찾을 수 없습니다.
namespace ViewModels
{
public class OrderViewModel : ViewModelBase
{
public ObservableCollection<Product> Products { get; set; } = new ObservableCollection<Product>();
public void FindProduct_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
{ ... }
}
public class ProductViewModel : ViewModelBase
{
string _ItemCode = default(string);
public string ItemCode { get { return _ItemCode; } set { Set(ref _ItemCode, value); } }
public ProductViewModel()
{
}
}
}
에서 관련 조각이 어떻게 올바르게에서 OrderViewModel
에 FindProduct_TextChanged
를 참조
<Page.DataContext>
<ViewModels:MainPageViewModel x:Name="OrderViewModel" />
</Page.DataContext>
<GridView ItemsSource="{x:Bind OrderViewModel.Products, Mode=TwoWay}">
<GridView.ItemTemplate>
<DataTemplate x:DataType="ViewModels:ProductViewModel" >
<AutoSuggestBox
Name="ProductAutoSuggestBox"
TextMemberPath="{x:Bind ItemCode, Mode=TwoWay}"
TextChanged="{x:Bind OrderViewModel.FindProduct_TextChanged}">
</AutoSuggestBox>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
입니다
Invalid binding path 'OrderViewModel.FindProduct_TextChanged' : Property 'OrderViewModel' can't be found on type 'ProductViewModel'
입니다 GridView에 대한 DataTemplate은 ProductViewModel
을 참조합니다. ?
ItemsSource로'OrderViewModel.Products'를 사용하면'x : DataType'이'Product'이어야하고'FindProduct_TextChanged' 메소드가 있어야한다는 것을 의미합니다. – tao
@tao 감사합니다. 무슨 뜻인지 잘 모르겠다. 'Product'는'OrderViewModel'의 멤버는 아니지만'Products'는'OrderViewModel'의 멤버입니다. 'FindProduct_TextChanged'는'OrderViewModel.Products'를 갱신하여'OrderViewModel'이 아닌 다른 곳에 넣을 수는 없습니다. 아니면 내가 잘못 이해 한거야? 무슨 뜻인지 설명하기 위해 코드 스 니펫을 제공 할 수 있습니까? – Vague