我開始使用WPF,抱歉,如果我無法解釋,並且我有幾個小時試圖解決如何將一個集合綁定到一個自定義網格名爲PagingDataGrid。WPF綁定到一個UserControl並出現錯誤
PagingDataGrid在CustomerSearchControl綁定GridItems到ItemsSource,當我超出SearchCommand GridItems得到更新但沒有其他更改。
我收到以下錯誤:
System.Windows.Data Error: 40 : BindingExpression path error: 'GridItems' property not found on 'object' ''PagingDataGridViewModel' (HashCode=54151655)'. BindingExpression:Path=GridItems; DataItem='PagingDataGridViewModel' (HashCode=54151655); target element is 'PagingDataGrid' (Name='Me'); target property is 'ItemsSource' (type 'IEnumerable')
CustomerSearchControl:
<UserControl x:Class="Namespace.CustomerSearchControl"
... >
<Control.DataContext>
<Binding Path="CustomerSearchViewModel" ... />
</Control.DataContext>
<DockPanel LastChildFill="True">
<GroupBox Header="Registros">
<controls:PagingDataGrid ItemsSource="{Binding GridItems}" Height="300" />
</GroupBox>
</DockPanel>
</UserControl>
public class CustomerSearchViewModel : ViewModelBase
{
public ObservableCollection<GridItem> GridItems{ get; set; }
public ICommand SearchCommand { get; set; }
public CustomerSearchViewModel()
{
GridItems = new ObservableCollection<GridItem>();
SearchCommand = new RelayCommand(SearchEntities,() => true);
}
}
PagingDataGrid:
<UserControl x:Class="Namespace.PagingDataGrid" x:Name="Me"
... >
<UserControl.DataContext>
<Binding Path="PagingDataGridViewModel" ... />
</UserControl.DataContext>
<Grid>
...
<xcdg:DataGridControl
ItemsSource="{Binding ElementName=Me, Path=ItemsSource}" Grid.Row="0"/>
</Grid>
</UserControl>
public partial class PagingDataGrid : UserControl
{
public static readonly DependencyProperty ItemsSourceProperty
= DependencyProperty.Register("ItemsSource", typeof(IEnumerable), typeof(PagingDataGrid),
new PropertyMetadata(default(IEnumerable)));
public IEnumerable ItemsSource
{
get { return (IEnumerable)GetValue(ItemsSourceProperty); }
set { SetValue(ItemsSourceProperty, value); }
}
}
我有一個定位器提供的實例: –
Najera
@Najera - 好吧。然後,你必須做第二件事,我剛剛更新答案讓它工作。 –
我得到幾乎相同的錯誤:System.Windows.Data錯誤:40:BindingExpression路徑錯誤:'對象'''PagingDataGridViewModel'(HashCode = 54151655)'找不到'GridItems'屬性。 BindingExpression:路徑=的DataContext。GridItems; DataItem ='PagingDataGrid'(Name ='我');目標元素是'DataGridControl'(Name ='');目標屬性是'ItemsSource'(鍵入'IEnumerable') – Najera