XAML:如何通过对象属性指定动态资源名称

时间:2019-12-30 16:36:26

标签: c# wpf xaml

我遇到的问题是,当我创建具有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>

谢谢。

0 个答案:

没有答案