我在WPF DataGrid
(MVVM)中定义了一个UserControl。我试图使用DataGridTemplateColumns
来定义DataGrid
内容。
这里是我的ViewModel:中的数据
public class CompanyClass
{
public string Name { get; set;}
public string Location { get; set; }
}
public ObservableCollection<CompanyClass> CompanyList = // Fill with Data;
这里是DataGrid定义在XAML中的样子:
<Grid Name="SampleGrid"
Width="{Binding ActualWidth, ElementName=NegativeAccountsBalances}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<DataGrid Name="SampleDataGrid"
AutoGenerateColumns="False"
ItemsSource="{Binding CompanyList}"
Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Grid,AncestorLevel=1}}"
IsReadOnly="True"
SelectionMode="Extended"
SelectionUnit="CellOrRowHeader"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<DataGrid.Columns>
<DataGridTemplateColumn Width="SizeToCells" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Name="txtCompanyName" Text="{Binding Path=Name}" Height="200" Width="200"/>
<TextBlock Text="{Binding Location}" Height="20" Width="20"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
由于某些原因,我似乎无法使绑定为DataTemplate
中的DataTemplate
控件工作。我正在将ItemSource
设置为包含在ViewModel中的"Company“集合。
我在这里错过了什么/做错了什么?
我在VS输出窗口中没有看到任何错误。如果我试图将一个TextBlock
绑定到一个假值,我仍然没有看到任何错误。不知何故,我似乎没有正确地设置我的装订。
谁能给我指明正确的方向吗?
谢谢
发布于 2017-05-16 22:54:57
CompanyList
是一个领域。你不能绑定到田里。只能绑定到属性。它需要一个吸气器和一个策划者。
发布于 2017-05-17 12:51:05
请确保只在构造函数中或通过使用在CompanyList
中引入的初始化器语法初始化CompanyList
属性一次:
public class ViewModel
{
public ViewModel()
{
CompanyList = new ObservableCollection<CompanyClass>();
//popuoate collection...
CompanyList.Add(new CompanyClass() { Name = "test...." });
}
public ObservableCollection<CompanyClass> CompanyList { get; private set; }
}
C#6+:
public ObservableCollection<CompanyClass> CompanyList { get; } = new ObservableCollection<CompanyClass>();
https://stackoverflow.com/questions/44009496
复制相似问题