【发布时间】:2016-09-07 08:06:45
【问题描述】:
我明白了:
System.Windows.Data 错误:40:BindingExpression 路径错误:“状态” 在“对象”“PointNetObject”(HashCode=9270846)上找不到属性。 绑定表达式:路径=状态; DataItem='PointNetObject' (哈希码=9270846);目标元素是'TextBlock'(名称='');目标 属性是“文本”(类型“字符串”)
一栏。所有行都添加到表中,但是对于每一行,我都会收到错误消息。每一行都显示了另外两列。但不是国家。自然不会调用转换器。
设置如下所述。
我有一个对象:
public class PointNetObject : NetObject
{
SwitchObjectState State
{
get { return _state; }
set { _state = value; }
}
}
继承具有 Phase 和 Label 等属性的类
在 ViewModel 中:
public ObservableCollection<PointNetObject> SelectedSwitchItems { get; private set; }
public SelectedObjectsViewModel(SelectedObjects selectedObjects)
{
SelectedSwitchItems = new ObservableCollection<PointNetObject>(GetSwitches());
}
IEnumerable<PointNetObject> GetSwitches()
{
foreach (var netObject in SelectedObjectsInstance.GetSelectedObjectItems(x => IsSwitch(x)))
{
yield return (PointNetObject) netObject;
}
}
在视图中:
<DataGrid Name="SelectedSwitchesGrid" CanUserAddRows="False" CanUserResizeColumns="True" CanUserSortColumns="True" IsReadOnly="True"
ItemsSource="{Binding SelectedSwitchItems}"
<DataGrid.Columns>
<DataGridTextColumn Header="{DynamicResource XpStrLabel}" Binding="{Binding Label}" />
<DataGridTextColumn Header="{DynamicResource XpStrPhase}" Binding="{Binding Phase}" />
<DataGridTextColumn Header="{DynamicResource XpStrState}" Binding="{Binding State, Converter={StaticResource SwitchObjectStateToStringConverter}}" />
</DataGrid.Columns>
</DataGrid>
【问题讨论】:
-
你的
SwitchObjectState State属性不是public,这非常重要。 -
谢谢,我是个白痴
-
@Jonesopolis: 愿意写一个 asnwer 以便我能接受吗?
标签: c# wpf xaml mvvm data-binding