目前我正在使用下面的代码将 TextBlock
绑定(bind)到 Application Settings
<Grid DataSource="{Binding DataContext.CurrentPatient, RelativeSource={RelativeSource AncestorType={x:Type Page}}">
...
...
...
<TextBlock Text="{Binding Source={StaticResource Settings}, Path=Default.Test}" />
<TextBox Text="{Binding Source={StaticResource Settings}, Path=Default.CurrentValue}" />
<TextBlock Text="{Binding Source={StaticResource Settings}, Path=Default.NormalValue}" />
...
...
...
</Grid>
现在我不想在所有文本 block 中键入 Source={StaticResource Settings}
。
简而言之,我想要代码压缩。我的意思是我希望我的代码易于维护和减少。
最佳答案
试试这个
public class Mybinding : Binding
{
//Load only once and use every time :)
static object Settings = App.Current.Resources["Settings"];
public Mybinding()
{
Source = Settings;
}
}
<TextBlock Text="{local:Mybinding Path=Default.Test}" />
>编辑
<Application.Resources>
<ResourceDictionary>
<properties:Settings x:Key="Settings" />
</ResourceDictionary>
</Application.Resources>
local是Mybinding的命名空间。我还没有测试过它。但希望这会给你一个想法。我期待“设置”在 App.xaml 或 ResourceDictionary 中合并到 App.xaml
关于wpf - 一次定义源并多次使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20844639/