我有一个动态创建的DataGrid,其中包含以下XAML:
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Cells}" IsReadOnly="True" Visibility="{Binding VisibilityStatus}"
CanUserResizeColumns="False" CanUserAddRows="False" RowBackground="{Binding Color}" Margin="0" RowHeight="25" HeadersVisibility="All">
<DataGrid.Columns>
<DataGridTemplateColumn Header="{Binding Path=Header}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding UniqueValuesToLapMapping.Keys, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding SelectedValue, Mode=TwoWay}"
SelectedIndex="0" Width="55"
Background="{Binding Color}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
除了标题之外,表格的所有内容都正确显示。无论我在哪个类中放置Header属性,我似乎无法绑定它。我已经尝试将它放入ViewModel中,将其放入具有&#34; Cells&#34;属性,并将其放入具有我在ComboBox中绑定的所有属性的类中。 我也试过没有&#34; Path =&#34;并将UpdateSourceTrigger设置为OnPropertyChanged并更改运行时的属性值:似乎没有任何效果。我在这里缺少什么?
这是我绑定的属性,我已将其放入所有这些类中:
private string _header = "TEST";
public string Header
{
get { return _header; }
set { SetField(ref _header, value, "Header"); }
}
答案 0 :(得分:5)
事实证明,它不在任何逻辑或可视树中。这个解决方案对我有用: