如果有人可以幫我解決我遇到的綁定問題,我會流浪嗎?代碼的WPF,MVVM datagrid行綁定
摘錄:
<DataGrid AutoGenerateColumns="False" Grid.Column="1" Grid.Row="1" SelectionMode="Single" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding PersonList}" CanUserSortColumns="True" SelectedItem="{Binding Path=SelectedPerson}" >
<DataGrid.Columns>
<DataGridTextColumn Header="FirstName" Width="100" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="LastName" Width="100" Binding="{Binding LastName}" />
<DataGridTemplateColumn Width="140" Header="Operator">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Path=OperatorList}" DisplayMemberPath="FullName" SelectedValue="{Binding Path=SelectedOperator}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
...
</DataGrid>
以上是代碼從視圖中的一個片段:
每個人在名單是它自己的視圖模型具有下面的代碼片段:
CollectionView _operatorList;
public CollectionView DebtorAgentList { get { return _operatorList; } }
Model.Operator _selectedOperator;
public Model.Operator SelectedOperator
{...}
現在我遇到的問題是SelectedValue綁定不起作用,我不知道爲什麼?但是,使它變得棘手或不同(可能)的原因是數據網格中的每一行都有其自己的視圖模型,所以在其他語言中是視圖模型的數據網格。所以發生的是FirstName和LastName和Combobox都被正確填充,但我似乎無法獲得SelectedValue綁定? P.S.它不是因爲一些拼寫錯誤,如果有拼寫錯誤,是因爲我改名的方法,當我寫的問題等
更多詳情:
以上的Datagrid是有它自己的視圖模型視圖的一部分,這個視圖模型用一系列人物填充上面的數據網格,每個人本質上都是一個視圖模型(好吧,它不是一個真正的視圖模型,但它的視圖模型又多於平面模型)。它工作的方式,我需要它,直到我試圖綁定SelectedView屬性?
有人可以告訴我爲什麼綁定可能無法正常工作?
在此先感謝:d
SelectedMode綁定模式需要兩種方式嗎?你是否發射財產變化的事件? –
我試圖設置selectedMode,但沒有做任何事情(默認情況下不是雙向的),是的,它應該是觸發屬性更改事件,但我試着強迫它在地方,看看會發生什麼:) – Heinrich
模式是單向默認。你的代碼沒有顯示任何INotifyPropertyChanged的實現,所以我不確定。 –