【发布时间】:2014-07-08 16:56:49
【问题描述】:
到目前为止,我已经从 SO 那里得到了很多帮助,但我已经陷入了困境。我可以使它适用于单个组合框,但是当我在 DataGridTemplate 中执行此操作时,它并没有发挥作用。我希望 FXCItem 属性能够获取从组合框中选择的任何值,但它总是返回 null。此外,我的 ConfigItems 属性中的“SET”方法根本没有被抛出。我在这里想念什么?提前谢谢!
ViewModel & Model(这是在按钮“点击”事件中填充的):
class ConfigViewModel : ViewModelEntity
{
public Settings Settings { get; set; }
public List<String> FileTypes { get; set; }
public List<String> Delimiters { get; set; }
public List<string> FXCFields { get; set; }
protected ObservableCollection<ConfigItem> _ConfigItems = new ObservableCollection<ConfigItem>();
public ObservableCollection<ConfigItem> ConfigItems
{
get { return _ConfigItems; }
set
{
if (_ConfigItems != value)
{
_ConfigItems = value;
NotifyPropertyChanged("ConfigItems");
}
}
}}
class ConfigItem
{
public string InputField { get; set; }
public string FXCField { get; set; }
public ConfigItem(string InputFieldName)
{
this.InputField = InputFieldName;
}
}
XAML:
<DataGrid x:Name="dgConfig" HorizontalAlignment="Left" Margin="40.66,98,0,0" VerticalAlignment="Top" Height="300.486" Width="323" AutoGenerateColumns="False" ItemsSource="{Binding ConfigItems}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding InputField}" Header="Input Fields"/>
<DataGridTemplateColumn Header="FXC Fields">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Path=DataContext.FXCFields, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
SelectedItem="{Binding Path=FXCItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Path=DataContext.FXCFields, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
SelectedItem="{Binding Path=FXCItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
【问题讨论】:
-
你在哪里定义了 FXCItem ?
-
@RAJ,你成功了!非常感谢!我的绑定属性命名错误!我已经看这个太久了,我无法从树上看到森林!非常感谢!