4

由于我在 C# 方面还不是很先进,因此我尝试学习如何使我的代码更高效。我在一些属性中存储了很多字符串。

在应用程序开始时,我将所有单独的属性加载到文本框中。我现在用这段代码来加载它们:

private void LoadStoredStrings()
{
    txtT1S1.Text = Properties.Settings.Default.strT1L1;
    txtT1S2.Text = Properties.Settings.Default.strT1L2;
    txtT1S3.Text = Properties.Settings.Default.strT1L3;
    txtT1S4.Text = Properties.Settings.Default.strT1L4;
    txtT1S5.Text = Properties.Settings.Default.strT1L5;
    txtT1S6.Text = Properties.Settings.Default.strT1L6;
    txtT1S7.Text = Properties.Settings.Default.strT1L7;
    txtT1S8.Text = Properties.Settings.Default.strT1L8;
    txtT1S9.Text = Properties.Settings.Default.strT1L9;
    txtT1S10.Text = Properties.Settings.Default.strT1L10;
}

很明显,我可以看到每个存储的属性以结尾的逻辑T1L1也适合以 .txt 结尾的 txt T1S1。我只知道这应该以比我现在所做的更优雅和更可靠的方式来完成。谁能把我推向正确的方向?

4

2 回答 2

5

您可以将您的属性直接绑定到您的文本框

<UserControl xmlns:Properties="clr-namespace:MyProjectNamespace.Properties" >


<TextBox Text="{Binding Source={x:Static Properties:Settings.Default}, Path=strT1L1, Mode=TwoWay}" />
于 2013-06-17T12:39:02.900 回答
0

如果您可以将所有这些常量放入 aList<string>中,则可以使用它ItemsControlTextBlock内部绑定:

代码隐藏或视图模型

private ObservableCollection<string> _defaultProperties = new ObservableCollection<string>();
public ObservableCollection<string> DefaultProperties
{
    get { return _defaultProperties; }
}

XAML

<ListBox ItemsSource="{Binding Path=DefaultProperties"}>
    <ListBox.ItemTemplate>
        <DataTemplate>
             <!--Just saying "Binding" allows binding directly to the current data context vs. a property on the data context-->
            <TextBlock Text="{Binding}"/> 
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
于 2013-06-17T12:39:10.817 回答