我在我的应用程序中使用 Listbox。
<ListBox Name="lbMain">
<ListBox.ItemTemplate>
<DataTemplate>
<Expander Header="{Binding Converter={StaticResource convCaption},
Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" IsExpanded="True">
<StackPanel>
<TextBlock Text={Binding FirstName, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}>
</TextBlock>
<TextBlock Text={Binding SecondName, Mode=TwoWay, pdateSourceTrigger=PropertyChanged}>
</TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
后面的代码
public MainWindow()
{
MyModel myModel = new MyModel();
lbMain.ItemSource = myModel;
}
这是模型
public class MyModel
{
public string FirstName{get; set; }
public string SecondName{get; set; }
}
这是转换器(convCaption)
public object Convert(object value, Type targetType, object parameter ...)
{
MyModel model =(MyModel)value;
return string.Format("This is {0}, {1}", Model.FirstName, ModelSecondName)
}
这一切都有效。但是当我更改 FirstName 或 SecondName 时,我需要更改 Expander 中的 Header。如果我写 {Mode = TwoWay} 显示错误 - “需要路径”。我喜欢为 Expander 编写正确的绑定(以更新的标题)?