Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何加粗&;加上「*&引用;保存选项卡时文本块的步骤_C#_Wpf_Mvvm - Fatal编程技术网

C# 如何加粗&;加上「*&引用;保存选项卡时文本块的步骤

C# 如何加粗&;加上「*&引用;保存选项卡时文本块的步骤,c#,wpf,mvvm,C#,Wpf,Mvvm,我有表示文档的选项卡,类似于Word。我的选项卡控件绑定到一个可观察集合TabViewModel有一个属性CanSave,指示文档是否可以保存。当它可以保存时,我想将其加粗并在其前面加上“*”。我该怎么做?我想我需要先做CanSaveadependencProperty。并添加一个触发器。但是前缀“*”呢 您不需要创建一个dependencProperty;您只需要实现INotifyPropertyChanged 您可以使用触发器将属性绑定到单独的*的可见性,以及标题的权重。一个简单的(可能很难

我有表示文档的选项卡,类似于Word。我的
选项卡控件
绑定到一个
可观察集合
TabViewModel
有一个属性
CanSave
,指示文档是否可以保存。当它可以保存时,我想将其加粗并在其前面加上“*”。我该怎么做?我想我需要先做
CanSave
a
dependencProperty
。并添加一个触发器。但是前缀“*”呢

您不需要创建一个
dependencProperty
;您只需要实现
INotifyPropertyChanged

您可以使用触发器将属性绑定到单独的
*
可见性
,以及标题的权重。

一个简单的(可能很难看,但肯定会起作用):

tb
表示要根据CanSave状态显示和隐藏的文本块


您可能还想创建一个dependencProperty,如您所说,并设置
TextBlock
s(您必须为star使用单独的TextBlock,或者使用可在WPF 4+中绑定的
Run
s)
Visibility
/
fontwweight
通过
DataTrigger
s根据它进行设置。

您还可以通过绑定设置选项卡的标题

<TabControl >
   <TabItem >
          <TabItem.Header>
                 <TextBlock Text="{Binding TabTitle1}" />
          <TabItem.Header>
</TabControl>
您还可以使用绑定将字体设置为粗体

FontWeight="{Binding Tab1FontWeight}"

如果我想引用XAML中的属性,我不需要使用DependencyProperties吗?不,你不需要。如果要将该属性绑定到某个值(而不是要将其他属性绑定到其值),则只需创建DependencyProperty DependencyObject。DependencyObject实现INotifyPropertyChanged,其核心就是依赖性属性的工作方式—它通过interfaceHmm发送更改通知,代码会是什么样子?对不起,我对更高级的WPF还比较陌生。提前谢谢
Tab1Title="* " + "some nice tab title";
FontWeight="{Binding Tab1FontWeight}"