我遇到的问题是,当我创建具有Caption属性的ViewModel时,我想在View内部使用DynamicResource,具体取决于该属性的值。
ViewModel:
public class MenuItemViewModel : INotifyPropertyChanged
{
private string _caption;
public event PropertyChangedEventHandler PropertyChanged;
public string Caption {
get {
return _caption;
}
set {
_caption = value;
OnPropertyChanged();
}
}
public virtual void OnPropertyChanged([CallerMemberName] string name = null) {
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
}
用于ListView的数据模板:
<DataTemplate x:Key="MenuItemTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" Text="{DynamicResource Caption}"/>
</Grid>
</DataTemplate>
谢谢。