目前我使用以下代码绑定到TextBlock
到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>
现在我不想在所有文本块中输入Source={StaticResource Settings}
。
简而言之,我希望缩小代码。我的意思是我希望我的代码可以维护和减少。
答案 0 :(得分:1)
试试这个
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}" />
<强>&gt;编辑强>
<Application.Resources>
<ResourceDictionary>
<properties:Settings x:Key="Settings" />
</ResourceDictionary>
</Application.Resources>
local是Mybinding的命名空间。我没有测试过它。但希望这会给你一个想法。我期待“设置”在App.xaml或ResourceDictionary合并到App.xaml
答案 1 :(得分:1)
再添加一个网格并使用其DataContext
:
<Grid DataContext={Binding Source={StaticResource Settings}}>
<TextBlock Text="{Binding Default.Test}" />
<TextBox Text="{Binding Default.CurrentValue}" />
<TextBlock Text="{Binding Default.NormalValue}" />
<Grid>