例如,是否可以将Textblock的Text属性绑定到String类型的名称[2]?
答案 0 :(得分:12)
我不确定你的意思是:一个String 类型的名称[2],所以这里有两个可能的解决方案:Array1和String1。 Array1显示bow以绑定到数组的元素,String1显示如何在字符串中显示单个字符。
CODE:
public partial class MainWindow : Window
{
private Array array1 = new[] {"test1", "test2", "test3"};
public Array Array1 { get { return array1; } }
public string string1 = "string";
public string String1 { get { return string1; } }
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
}
XAML:
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Array1[0]}"/>
<TextBlock Text="{Binding Array1[2]}"/>
<TextBlock Text="{Binding String1[0]}"/>
<TextBlock Text="{Binding String1[1]}"/>
</StackPanel>
希望有所帮助。
答案 1 :(得分:4)
是的,你可以。以下是XAML方法。 如果要在值更改时自动更新UI,建议绑定到Observable集合。
public class DataStub
{
public Array SomeNorthEasternStates
{
get
{
return new[] { "NH", "VT", "CT", "MA", "ME" };
}
}
}
XAML:假设DataContext设置正确:
<TextBox Margin="5" Text="{Binding SomeNorthEasternStates[3], Mode=Default}"/>
答案 2 :(得分:3)
我在xaml中添加了一个按钮并订阅了“click”事件。
这是C#代码。
public partial class MainWindow : Window, INotifyPropertyChanged
{
private Array array1 = new[] { "test1", "test2", "test3" };
public Array Array1 { get { return array1; } }
public string string1 = "string";
public string String1
{
get { return string1; }
set
{
string1 = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("String1"));
}
}
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
public event PropertyChangedEventHandler PropertyChanged;
private void Button_Click(object sender, RoutedEventArgs e)
{
String1 = DateTime.Now.ToString();
array1.SetValue("another test", 0);
PropertyChanged(this, new PropertyChangedEventArgs("Array1"));
}
}
答案 3 :(得分:1)
如果你的意思是我们可以用textBox绑定数组项,那么,是的
<TextBox Margin="10" Text="{Binding Name[2], Mode=Default}" Name="textBox1"/>
答案 4 :(得分:1)
改为使用ObservableCollection:
private ObservableCollection<string> _myItems = new ObservableCollection<string>(new[] { "test1", "test2", "test3" });
public ObservableCollection<string> MyItems
{
get { return _myItems; }
set { _myItems = value; }
}
的Xaml
<StackPanel Orientation="Vertical">
<TextBox Text="{Binding MyItems[0]}"/>
<TextBox Text="{Binding MyItems[2]}"/>
<TextBlock Text="{Binding MyItems[0]}"/>
<TextBlock Text="{Binding MyItems[1]}"/>
</StackPanel>