【发布时间】:2015-03-06 14:11:30
【问题描述】:
我正在尝试将 gridView 绑定到 Windows Store 应用程序中的 ObservableCollection。我的问题是我得到了数据,但该集合似乎不起作用
public class ValveData : INotifyPropertyChanged
{
private string valveName;
private decimal waterMl;
private decimal waterEc;
private decimal waterPh;
public string ValveName
{
get { return this.valveName; }
set
{
this.valveName = value;
this.OnPropertyChanged("ValveName");
}
}
public decimal WaterMl
{
get { return this.waterMl; }
set
{
this.waterMl = value;
this.OnPropertyChanged("WaterMl");
}
}
public decimal WaterEc
{
get { return this.waterEc; }
set
{
this.waterEc = value;
this.OnPropertyChanged("WaterEc");
}
}
public decimal WaterPh
{
get { return this.waterPh; }
set
{
this.waterPh = value;
this.OnPropertyChanged("WaterPh");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
public class ValveDataCollection : ObservableCollection<ValveData>
{
public ValveDataCollection() : base()
{
Add(new ValveData { ValveName = "Valve 1", WaterMl = 100, WaterEc = 3, WaterPh = 5 });
Add(new ValveData { ValveName = "Valve 2" });
Add(new ValveData { ValveName = "Valve 3" });
Add(new ValveData { ValveName = "Valve 4" });
}
}
这是我的 Xaml
<data:ValveDataCollection x:Key="ValvesData"/>
<GridView x:Name="gw1" Grid.Row="2" ItemsSource="{StaticResource ValvesData}">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBox Text="{Binding ValveName, Mode=TwoWay}"/>
<TextBox Text="{Binding WaterMl, Mode=TwoWay}"/>
<TextBox Text="{Binding WaterEc, Mode=TwoWay}"/>
<TextBox Text="{Binding WaterPh, Mode=TwoWay}"/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
我确定我遗漏了一些东西,但是我已经查看了这段代码好几天了,但还是搞不明白 该字符串看起来可以正常工作,这意味着如果我有 2 个文本框链接到 ValveName 字符串,则设置字符串并获取数据,但看起来它不适用于小数,它们会在启动时获取数据,但如果您在文本框似乎不会影响变量
【问题讨论】:
-
请比“它不起作用”更具体。
-
如果没有足够的信息,我们无法调试。
-
字符串看起来可以正常工作,这意味着如果我有 2 个文本框链接到 ValveName 字符串,则设置字符串并获取数据,但看起来它不适用于小数,它们会获取数据启动,但如果你在文本框中修改它似乎不会影响变量
标签: c# binding windows-store-apps winrt-xaml inotifypropertychanged