我正在尝试理解2009年11月工具包中实现的DataForm,我无法弄清楚如何将ComboBox绑定到枚举.有谁知道DataForm如何自动执行此操作?
背景
首先,我创建了一个类和枚举,下面这个文章,并允许数据形生成领域.DataForm为Name字符串字段生成了一个TextBox,并且(我假设是)一个用于Genres枚举字段的ComboBox.
我理解如何自定义DataForm的第一个目标是重现自动生成中生成的内容.我设法做了TextBoxes(和DatePicker,从这段代码中排除),但我很难将ComboBox绑定到枚举.
这是类(简化):
public class Movie
{
public string Name { get; set; }
public Genres Genre { get; set; }
}
public enum Genres
{
Comedy,
Fantasy,
Drama,
Thriller
}
Run Code Online (Sandbox Code Playgroud)
然后在MainPage我这样做:
private ObservableCollection<Movie> movies = new ObservableCollection<Movie>();
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
Movie movie = new Movie() { Name = "Fred", Genre = Genres.Thriller };
movies.Add(movie);
myDataForm.ItemsSource = movies;
}
Run Code Online (Sandbox Code Playgroud)
并在MainPage.xaml中,在Grid中:
<dataFormToolkit:DataForm x:Name="myDataForm" AutoEdit="False" AutoCommit="False"
Header="Foo Movie DB">
</dataFormToolkit:DataForm>
Run Code Online (Sandbox Code Playgroud)
对于自动生成的东西.当尝试手动生成它时,我得到了:
<dataFormToolkit:DataForm x:Name="myDataForm" AutoEdit="False" …Run Code Online (Sandbox Code Playgroud) 我正在进行一些研究的Latent Dirichlet分析并继续遇到问题.大多数lda软件要求文档采用doclines格式,即CSV或其他分隔文件,其中每行代表文档的整体.然而,Blei的LDA-C和动态主题模型的软件要求将数据格式:[M] [term_1]:[count] [term_2]:[count] ... [term_N]:[count]这里[M]是文档中唯一项的数量,以及第[count]与每个术语相关的是多少次这个词出现在文档中.注意,这[term_1]是一个对术语进行索引的整数; 它不是一个字符串.
有没有人知道一个实用程序会让我快速转换为这种格式?谢谢.
我在本地计算机上使用 Dataform CLI。版本:1.22.2
我按照本指南运行包含。https://docs.dataform.co/guides/javascript/includes 我的 sqlx 文件和常量与文档相同。
常量.js
const PROJECT_ID = "我的项目名称"; module.exports = { PROJECT_ID };
sqlx
SELECT * FROM ${constants.PROJECT_ID}.schema.table
PS C:\Srikanth\vscode\framework> dataform compile
Compiling...
Dataform encountered an error: Assigning to rvalue
C:\user\vscode\repository_1\index.js:25
try { global.includes/constants = require("./includes/constants.js"); } catch (e) {
^
SyntaxError: Assigning to rvalue
at makeNiceSyntaxError (C:\Users\user\AppData\Roaming\nvm\v16.9.1\node_modules\@dataform\cli\node_modules\vm2\lib\transformer.js:41:16)
at transformer (C:\Users\user\AppData\Roaming\nvm\v16.9.1\node_modules\@dataform\cli\node_modules\vm2\lib\transformer.js:84:8)
at NodeVM.run (C:\Users\user\AppData\Roaming\nvm\v16.9.1\node_modules\@dataform\cli\node_modules\vm2\lib\nodevm.js:414:17)
at compile (C:\Users\user\AppData\Roaming\nvm\v16.9.1\node_modules\@dataform\cli\worker_bundle.js:19829:23)
at process.<anonymous> (C:\Users\user\AppData\Roaming\nvm\v16.9.1\node_modules\@dataform\cli\worker_bundle.js:19834:36)
at process.emit (node:events:406:35)
at emit (node:internal/child_process:917:12)
at processTicksAndRejections (node:internal/process/task_queues:84:21)```
Run Code Online (Sandbox Code Playgroud) 我是MVVM和Silverlight的新手,我只想弄清楚一个简单的场景.
我正在使用MVVM Light工具包和没有Expression Blend的Silverlight 3.0.
我有一个DataGrid和一个DataForm绑定到ViewModel中的可观察集合.我想RelayCommand Save()在更改DataForm控件中的数据后绑定到我的属性,并在不使用我的视图背后的代码的情况下完成此操作.
DataForm不使用cmd:ButtonBaseExtensions.CommandMVVM Light用于正常按钮单击命令绑定,因此我不确定如何将控件绑定到我的ViewModel.
任何帮助表示赞赏!
我将DataForm用于具有大约40个属性的实体.我很满意表单如何显示除3个属性之外的所有属性.这3个属性恰好是项目列表.
我不想编写整个编辑模板,看起来非常适得其反.
<dataFormToolkit:DataForm AutoGenerateFields="True" CurrentItem="{Binding XXX, Mode=TwoWay, Source={StaticResource XXXViewModel}}" >
<dataFormToolkit:DataField Label="Client" >
<ListBox ItemsSource="{Binding Client}"></ListBox>
</dataFormToolkit:DataField>
</dataFormToolkit:DataForm>
Run Code Online (Sandbox Code Playgroud) 我有这个问题,我有使用MVVM编写的Silverlight应用程序.我需要创建绑定到ViewModel属性的DataForm,我想添加ComboBox并用同一ViewModel中其他集合的值填充它.
码:
<dataFormToolkit:DataForm CurrentItem="{Binding NewUser, Mode=TwoWay}" AutoGenerateFields="False" Height="298">
<dataFormToolkit:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
<dataFormToolkit:DataField Label="Email">
<TextBox Text="{Binding Email, Mode=TwoWay}"/>
</dataFormToolkit:DataField>
<dataFormToolkit:DataField Label="J?zyk">
<ComboBox ItemsSource="{Binding Path=Languages, Mode=TwoWay}"/>
</dataFormToolkit:DataField>
</StackPanel>
</DataTemplate>
</dataFormToolkit:DataForm.EditTemplate>
</dataFormToolkit:DataForm>
Run Code Online (Sandbox Code Playgroud)
所有这些都由具有以下属性的NewAccountVM处理:
private User newUser;
public User NewUser {
get
{
return newUser;
}
set
{
if (value != newUser)
{
newUser = value;
RaisePropertyChanged("NewUser");
}
}
}
private ObservableCollection<Language> languages;
public ObservableCollection<Language> Languages
{
get { return languages; }
set
{
if (languages != value)
{
languages = value;
RaisePropertyChanged("Languages");
} …Run Code Online (Sandbox Code Playgroud) 我正在使用Silverlight 4数据表并尝试使用内置的添加按钮在我的集合中创建一个新项目.它工作正常,除了我有许多需要在幕后设置的属性.我已经尝试连接可能看起来的事件,例如AddingNewItem但是新项目在那时是只读的,我无法设置属性.
是否有使用Silverlight 4数据表添加新项目的技巧?
我有一个DataForm,我已将某些DataField的Visibility设置为Collapsed,当用户从ComboBox中选择一个选项时,某些DataFields应该再次可见.
基本上(粗糙的伪代码).
OnComboBoxChange =
if this.index = 1 then
DataForm.Fields[1].Visibility = Visible
else
DataForm.Fields[2].Visibility = Visible
Run Code Online (Sandbox Code Playgroud)
适用于MVVM模式的答案的奖励积分.
dataform ×8
mvvm ×3
silverlight ×3
combobox ×2
data-binding ×2
enums ×1
lda ×1
mvvm-light ×1
nlp ×1